質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1012閲覧

pyxelエラーの理由が知りたい。

A_.

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/20 10:03

python

1import pyxel 2import random 3 4IMG_NO = 0 5ENEMY_IMG_NO = 1 6 7class MyChara: 8 ani_no = 0 9 ani_max = 6 10 ani_interval = 2 11 ani_cnt = 0 12 ani_flg = False 13 14 def __init__(seif): 15 if pyxel.btn(pyxel.KEY_LEFT) or pyxel.btn(pyxel.GAMEPAD_1_LEFT): 16 self.my_x = max(self.my_x - 2, 0) 17 18 if pyxel.btn(pyxel.KEY_RIGHT) or pyxel.btn(pyxel.GAMEPAD_1_RIGHT): 19 self.my_x = min(self.my_x + 2, pyxel.width - 16) 20 21 if pyxel.btn(pyxel.KEY_UP) or pyxel.btn(pyxel.GAMEPAD_1_UP): 22 self.my_y = max(self.my_y - 2, 0) 23 24 if pyxel.btn(pyxel.KEY_DOWN) or pyxel.btn(pyxel.GAMEPAD_1_DOWN): 25 self.my_y = min(self.my_y + 2, pyxel.height - 16) 26 27 self.ani_flg = False 28 29 def startAnimation(self): 30 self.ani_cnt = -1 31 self.ani_no = 0 32 self.ani_flg = True 33 34 def drawImage(self,_my_x,_my_y): 35 if(self.ani_flg == True): 36 self.ani_cnt = (self.ani_cnt + 1)% self.ani_interval 37 if(self.ani_cnt == 0): 38 self.ani_no = self.ani_no + 1 39 if(self.ani_no >= self.ani_max): 40 self.ani_no = 0 41 self.ani_flg = False 42 else: 43 self.ani_no = 0 44 pyxel.blt( 45 _my_x,_my_y, 46 IMG_NO, 47 0 + (self.ani_no * 16),0, 48 16,16,1) 49 50 class Enemy: 51 ani_no = 0 52 ani_max = 6 53 ani_interval = 2 54 ani_cnt = 0 55 ani_flg = False 56 delete_flg = False 57 58 def __init__(self,_width,_height): 59 self.x = random.randint(0,_width) 60 self.y = random.randint(0,_height) 61 self.delete_flg = False 62 63 def startAnimation(self): 64 if(self.ani_flg == False): 65 self.ani_cnt = -1 66 self.ani_no = 0 67 self.ani_flg = True 68 69 def drawImage(self,_x,_y): 70 if(self.ani_flg == True): 71 self.ani_cnt = (self.ani_cnt + 1)% self.ani_interval 72 if(self.ani_cnt == 0): 73 self.ani_no = self.ani_no + 1 74 if(self.ani_no >= self.ani_max): 75 self.ani_no = self.ani_max - 1 76 self.ani_flg = False 77 self.delete_flg = True 78 else: 79 self.ani_no = 0 80 pyxel.blt( 81 _x,_y,ENEMY_IMG_NO, 82 0 + (self.ani_no * 16),0, 83 16,16,1) 84

pyxelでキャラクターのアニメーションを動かしたいのですが、動きません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2021/11/20 10:17

エラーメッセージは出ていないのですか。 インデントがあっていないとか確認してみてはいかがでしょうか。
A_.

2021/11/20 10:20

else: のところにexpected expression pylanceとエラーが出ているのですが、なぜでしょうか
toccipc

2021/11/20 10:40

明らかにインデントおかしいですね
A_.

2021/11/20 10:42

どこが間違っているのでしょうか
guest

回答1

0

ベストアンサー

【間違い1】
class MyChara:

class Enemy:
は別物でしょう

基本を押さえればわかるところなのであえて答えは書きません

【間違い2】(複数あり)

if(self.ani_no >= self.ani_max): self.ani_no = 0 self.ani_flg = False else:

if に対して else あるはずなので、ここもそこの部分はインデントを合わせましょう。

ちなみに私は
pyxel というライブラリ
は知らなかったです

投稿2021/11/20 11:08

編集2021/11/20 12:38
toccipc

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1T2R3M4

2021/11/20 11:46

コメント欄では使えませんが、 回答欄でもマークダウンが使えるので お時間のある時に【間違い2】のコード部を ``` ではさんでみてください。
A_.

2021/11/20 11:53

実行しましたら、エラーはでなくなったのですが、pyxelが起動しなくなってしまいました。 Exception has occurred: ModuleNotFoundError No module named 'pyxel' このようなものが出たのですが、どういうものなのでしょうか
toccipc

2021/11/20 12:41

Shellで ``` pip install pyxel ``` してないかと思われます。 外部ライブラリ使う時は実行前にpip install しましょう。 まだ私はpython歴あまり長くないので、詳細に説明は難しいですが、外部ライブラリは入れないとうごきません。
A_.

2021/11/20 13:00

どうにかできました。ありがとうございます。
toccipc

2021/11/20 13:38

おお、良かったですね。 とりあえず基本的な所なので、インデントの意味合いは理解しましょう。 あと、ライブラリ使用時のpip install は。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問