入力

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)

一般的なキー名:leftrightupdownspaceenterescapeaz09

タッチ

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)

マウスが公開する情報:

ゲームパッド

Pyxenは最大4つのゲームパッドに対応しています。input.gamepadsを通じてアクセスします:

pad = input.gamepads[0]
if pad.connected:
    player.x += pad.left_stick.x * 2
    if pad.buttons.a.pressed:
        jump()

各ゲームパッドの情報:

複数入力に対応した設計

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リファレンスを参照してください。