はじめに
AttributeError: module 'pyxel' has no attribute 'MOUSE_LEFT_BUTTON'というエラーが何回か発生したので、忘備録としてこの記事を書いてみました。
この記事では、現時点のPyxelの最新バージョンであるバージョン1.9.18を使っています。
この記事の対象者
この記事の対象者は以下のような人です。
- 下記のコードを動かした際に、
if pyxel.btn(pyxel.MOUSE_LEFT_BUTTON):
AttributeError: module 'pyxel' has no attribute 'MOUSE_LEFT_BUTTON'
上記のエラーが出てしまった方
- 主なキー定義を軽く確認したい方
エラーが出てしまう原因
if pyxel.btn(pyxel.MOUSE_LEFT_BUTTON):
上記のコードでは左クリックを押したかどうかを調べるために、MOUSE_LEFT_BUTTONを使おうとしていますが、先述のエラーが出てしまいます。その原因はPyxelのバージョン1.9.18のキー定義を確認すると左クリックの定義はMOUSE_LEFT_BUTTONではなく、MOUSE_BUTTON_LEFTとなっており、MOUSE_LEFT_BUTTONは存在しないためです。
MOUSE_LEFT_BUTTONを使ってしまっていた原因は、Pyxelのバージョン1.43のキー定義を確認するとわかります。
バージョン1.43ではMOUSE_LEFT_BUTTONが左クリックの定義となっており、その頃の古いソースコードを使ってしまったため、MOUSE_LEFT_BUTTONが使われてしまったものだと思われます。
エラーを解決する方法
if pyxel.btn(pyxel.MOUSE_LEFT_BUTTON):
上記のコードを
if pyxel.btn(pyxel.MOUSE_BUTTON_LEFT):
に書き直しましょう。
MOUSE_LEFT_BUTTONをMOUSE_BUTTON_LEFTに書き換えるだけですね。
キー定義を簡単に確認したい
今回見ていったキー定義はこちらで確認できますが、少し長いので主要なものを表にまとめてみました。
マウス
| ボタン | キー定義 |
|---|---|
| 左クリック | MOUSE_BUTTON_LEFT |
| 右クリック | MOUSE_BUTTON_RIGHT |
上下左右キー
| ボタン | キー定義 |
|---|---|
| 上キー | KEY_UP |
| 下キー | KEY_DOWN |
| 左キー | KEY_LEFT |
| 右キー | KEY_RIGHT |
数字
| ボタン | キー定義 |
|---|---|
| 0 | KEY_0 |
| 1 | KEY_1 |
| 2 | KEY_2 |
| 3 | KEY_3 |
| 4 | KEY_4 |
| 5 | KEY_5 |
| 6 | KEY_6 |
| 7 | KEY_7 |
| 8 | KEY_8 |
| 9 | KEY_9 |
英字
| ボタン | キー定義 |
|---|---|
| A | KEY_A |
| B | KEY_B |
| C | KEY_C |
| D | KEY_D |
| E | KEY_E |
| F | KEY_F |
| G | KEY_G |
| H | KEY_H |
| I | KEY_I |
| J | KEY_J |
| K | KEY_K |
| L | KEY_L |
| M | KEY_M |
| N | KEY_N |
| O | KEY_O |
| P | KEY_P |
| Q | KEY_Q |
| R | KEY_R |
| S | KEY_S |
| T | KEY_T |
| U | KEY_U |
| V | KEY_V |
| W | KEY_W |
| X | KEY_X |
| Y | KEY_Y |
| Z | KEY_Z |
その他の主要なキー
| ボタン | キー定義 |
|---|---|
| スペースキー | KEY_SPACE |
| バックスペースキー | KEY_BACKSPACE |
| エンターキー | KEY_RETURN |
| プラスキー | KEY_PLUS |
| マイナスキー | KEY_MINUS |
まとめ
Pyxelのバージョン1.9.18のキー定義を確認して、エラーを解決していきました。
参考にしていただけたら幸いです。
ではみなさま、よきPyxelライフを。