入力
Pyxenはキーボード、タッチ、マウス、ゲームパッド入力に対応しています。すべての入力はinputモジュールを通じて読み取られ、update()が実行される前に毎フレーム更新されます。
キーボード
input.keyboardで任意のキーに名前でアクセスします:
if input.keyboard.right.down:
player.x += 2
if input.keyboard.space.pressed:
jump()
すべてのキーは同じプロパティを公開します:
| プロパティ | 意味 |
|---|---|
down | このフレームで押されている |
pressed | このフレームで押された瞬間(1フレームだけtrue) |
released | このフレームで離された瞬間(1フレームだけtrue) |
value | アナログ値(キーの場合は0.0または1.0) |
一般的なキー名:left、right、up、down、space、enter、escape、a〜z、0〜9。
タッチ
iPadでは、タッチ入力はinput.touchesを通じて取得します — アクティブなタッチポイントのリストです:
for touch in input.touches:
if touch.started:
spawn_particle(touch.x, touch.y)
各タッチの情報:
| プロパティ | 意味 |
|---|---|
x, y | ゲーム座標での位置 |
dx, dy | 前フレームからの移動量 |
pressure | タッチ圧力(利用可能な場合) |
down | 現在タッチ中 |
started | このフレームでタッチ開始 |
ended | このフレームでタッチ終了 |
マウス
マウス入力はMacおよびマウスやトラックパッドが接続されたiPadで動作します:
if input.mouse.buttons.left.pressed:
shoot(input.mouse.x, input.mouse.y)
マウスが公開する情報:
x,y— ゲーム座標でのカーソル位置dx,dy— 前フレームからの移動量wheel— スクロールホイールのデルタbuttons.left、buttons.right、buttons.middle— それぞれdown、pressed、releasedを持つ
ゲームパッド
Pyxenは最大4つのゲームパッドに対応しています。input.gamepadsを通じてアクセスします:
pad = input.gamepads[0]
if pad.connected:
player.x += pad.left_stick.x * 2
if pad.buttons.a.pressed:
jump()
各ゲームパッドの情報:
connected— このインデックスにゲームパッドが接続されているかleft_stick、right_stick—xとy(-1.0〜1.0)を持つアナログスティックbuttons—a、b、x、y、およびトリガーとバンパー、それぞれdown、pressed、released、valueを持つ
複数入力に対応した設計
Pyxenゲームはタッチ付きiPad、キーボード付きiPad、またはマウスとキーボード付きMacで実行できます。複数の入力ソースをチェックするのが良いアプローチです:
def update():
dx = 0
if input.keyboard.right.down:
dx = 2
elif input.keyboard.left.down:
dx = -2
pad = input.gamepads[0]
if pad.connected:
dx = pad.left_stick.x * 2
player.x += dx
完全なAPIはinputリファレンスを参照してください。