やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

pyxelのAPI調査

 APIリファレンス読めばいい。

APIリファレンス

GitHubソースコード

 よくわからん。C言語からPythonに変換していることはわかるが……。Pythonのインタフェースはどれ? 引数や戻り値は?

dir関数

Pythonはいつもインタフェースがわからない。そういうとき、dir()関数を使う。 a.py

import pyxel
print(dir(pyxel))
python3 a.py
['Any', 'CFUNCTYPE', 'COLOR_BLACK', 'COLOR_BROWN', 'COLOR_COUNT', 'COLOR_CYAN', 'COLOR_DARKGRAY', 'COLOR_GREEN', 'COLOR_LIGHTGRAY', 'COLOR_LIME', 'COLOR_NAVY', 'COLOR_ORANGE', 'COLOR_PEACH', 'COLOR_PINK', 'COLOR_PURPLE', 'COLOR_RED', 'COLOR_STEELBLUE', 'COLOR_WHITE', 'COLOR_YELLOW', 'Callable', 'DEFAULT_BORDER_COLOR', 'DEFAULT_BORDER_WIDTH', 'DEFAULT_CAPTION', 'DEFAULT_FPS', 'DEFAULT_PALETTE', 'DEFAULT_QUIT_KEY', 'DEFAULT_SCALE', 'Dict', 'FONT_HEIGHT', 'FONT_WIDTH', 'GAMEPAD_1_A', 'GAMEPAD_1_B', 'GAMEPAD_1_DOWN', 'GAMEPAD_1_LEFT', 'GAMEPAD_1_LEFT_SHOULDER', 'GAMEPAD_1_RIGHT', 'GAMEPAD_1_RIGHT_SHOULDER', 'GAMEPAD_1_SELECT', 'GAMEPAD_1_START', 'GAMEPAD_1_UP', 'GAMEPAD_1_X', 'GAMEPAD_1_Y', 'GAMEPAD_2_A', 'GAMEPAD_2_B', 'GAMEPAD_2_DOWN', 'GAMEPAD_2_LEFT', 'GAMEPAD_2_LEFT_SHOULDER', 'GAMEPAD_2_RIGHT', 'GAMEPAD_2_RIGHT_SHOULDER', 'GAMEPAD_2_SELECT', 'GAMEPAD_2_START', 'GAMEPAD_2_UP', 'GAMEPAD_2_X', 'GAMEPAD_2_Y', 'IMAGE_BANK_FOR_SYSTEM', 'Image', 'KEY_0', 'KEY_1', 'KEY_2', 'KEY_3', 'KEY_4', 'KEY_5', 'KEY_6', 'KEY_7', 'KEY_8', 'KEY_9', 'KEY_A', 'KEY_ALT', 'KEY_B', 'KEY_BACKQUOTE', 'KEY_BACKSLASH', 'KEY_BACKSPACE', 'KEY_C', 'KEY_CAPS_LOCK', 'KEY_COMMA', 'KEY_CONTROL', 'KEY_D', 'KEY_DELETE', 'KEY_DOWN', 'KEY_E', 'KEY_END', 'KEY_ENTER', 'KEY_EQUAL', 'KEY_ESCAPE', 'KEY_F', 'KEY_F1', 'KEY_F10', 'KEY_F11', 'KEY_F12', 'KEY_F2', 'KEY_F3', 'KEY_F4', 'KEY_F5', 'KEY_F6', 'KEY_F7', 'KEY_F8', 'KEY_F9', 'KEY_G', 'KEY_H', 'KEY_HOME', 'KEY_I', 'KEY_INSERT', 'KEY_J', 'KEY_K', 'KEY_KP_0', 'KEY_KP_1', 'KEY_KP_2', 'KEY_KP_3', 'KEY_KP_4', 'KEY_KP_5', 'KEY_KP_6', 'KEY_KP_7', 'KEY_KP_8', 'KEY_KP_9', 'KEY_KP_ADD', 'KEY_KP_DECIMAL', 'KEY_KP_DIVIDE', 'KEY_KP_ENTER', 'KEY_KP_EQUAL', 'KEY_KP_MULTIPLY', 'KEY_KP_SUBTRACT', 'KEY_L', 'KEY_LEFT', 'KEY_LEFT_ALT', 'KEY_LEFT_BRACKET', 'KEY_LEFT_CONTROL', 'KEY_LEFT_SHIFT', 'KEY_LEFT_SUPER', 'KEY_M', 'KEY_MENU', 'KEY_MINUS', 'KEY_N', 'KEY_NONE', 'KEY_NUM_LOCK', 'KEY_O', 'KEY_P', 'KEY_PAGE_DOWN', 'KEY_PAGE_UP', 'KEY_PAUSE', 'KEY_PERIOD', 'KEY_PRINT_SCREEN', 'KEY_Q', 'KEY_QUOTE', 'KEY_R', 'KEY_RIGHT', 'KEY_RIGHT_ALT', 'KEY_RIGHT_BRACKET', 'KEY_RIGHT_CONTROL', 'KEY_RIGHT_SHIFT', 'KEY_RIGHT_SUPER', 'KEY_S', 'KEY_SCROLL_LOCK', 'KEY_SEMICOLON', 'KEY_SHIFT', 'KEY_SLASH', 'KEY_SPACE', 'KEY_SUPER', 'KEY_T', 'KEY_TAB', 'KEY_U', 'KEY_UP', 'KEY_V', 'KEY_W', 'KEY_X', 'KEY_Y', 'KEY_Z', 'List', 'MOUSE_LEFT_BUTTON', 'MOUSE_MIDDLE_BUTTON', 'MOUSE_RIGHT_BUTTON', 'MUSIC_BANK_COUNT', 'MUSIC_CHANNEL_COUNT', 'Module', 'Music', 'MutableSequence', 'Optional', 'RESOURCE_FILE_EXTENSION', 'SOUND_BANK_FOR_SYSTEM', 'Sound', 'TILEMAP_BANK_COUNT', 'Tilemap', 'USER_IMAGE_BANK_COUNT', 'USER_SOUND_BANK_COUNT', 'VERSION', '_CListInterface', '__annotations__', '__builtins__', '__cached__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__file__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__loader__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__package__', '__path__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__spec__', '__str__', '__subclasshook__', '__warningregistry__', '__weakref__', '_caption', '_drop_file', '_get_constant_number', '_get_constant_string', '_image_bank', '_module', '_music_bank', '_pmodule', '_sound_bank', '_tilemap_bank', 'blt', 'bltm', 'btn', 'btnp', 'btnr', 'c_char_p', 'c_int32', 'cast', 'circ', 'circb', 'clip', 'cls', 'core', 'create_string_buffer', 'flip', 'frame_count', 'height', 'image', 'init', 'inspect', 'k', 'line', 'load', 'module', 'mouse', 'mouse_x', 'mouse_y', 'music', 'os', 'pal', 'pget', 'play', 'play_pos', 'playm', 'pset', 'quit', 'rect', 'rectb', 'run', 'save', 'show', 'signal', 'sound', 'stop', 'sys', 'text', 'tilemap', 'traceback', 'tri', 'trib', 'v', 'width']
  • Image
  • Tilemap
  • Music
  • Sound

Image

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'copy', 'data', 'get', 'height', 'load', 'set', 'width']

重要そうな点

要素 要点
init(),width,height 最大255
init(),palette 16色。palette=[0x000000, 0x1D2B53, ...]のように変更できる。
run(update, draw) これがメイン処理になりそう。関数を渡す
quit() アプリ終了。

所感

 あとは実際にAPIを触ってみるしかない。リソースを呼び出したい。

前回まで

対象環境

$ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux