DEKI/ENGINE ドキュメント
deki-input 0.19.0
Deki パッケージリファレンス
deki-input

入力のディスパッチと衝突判定。ポインター / タッチ / キーのイベントを、それを必要とするコンポーネントに送ります。

リポジトリ: github.com/dekiengine/deki-input · 最新リリース: 0.19.0 · エンジン 0.19.0 以降が必要 · 依存: deki-rendering

DekiEditor --packages-add deki-input <project> か、パッケージマネージャーからインストールします。エンジン自身のコンポーネントと C++ API は Deki のドキュメントにあります。

エディターでは Input と表示されます。

コンポーネント

コンポーネント カテゴリ 説明
I2CKeyboardComponent 入力 I2C で 1 回読むごとに入力された文字を 1 つ返すキーボードを読み取ります。LilyGO T-Deck のキーボードや M5Stack CardKB が該当します。
InputCollider 入力 ポインターとタッチの当たり判定の領域です。ボタンやスクロールはここで入力を受け取ります。
TrackballComponent 入力 GPIO ピンにつないだトラックボールです。矢印キーと Enter として、またはポインターとして使えます。

機能フラグ

ビルドから外せる部分です。define を持つ機能はその define で切り替わり、それ以外はコンポーネントと一緒に取り除かれます。

機能 define デフォルト
Colliders DEKI_FEATURE_INPUT オン
I2C Keyboard DEKI_FEATURE_INPUT_I2C_KEYBOARD オン
Trackball DEKI_FEATURE_INPUT_TRACKBALL オン

コンポーネントリファレンス

I2CKeyboardComponent

I2C で 1 回読むごとに入力された文字を 1 つ返すキーボードを読み取ります。LilyGO T-Deck のキーボードや M5Stack CardKB が該当します。

インスペクターでの名前: I2C キーボード · カテゴリ: 入力 · 型: DekiInput::I2CKeyboardComponent

プロパティ 型 デフォルト 制約 説明
i2cPort int32 0 0 から 3 キーボードがつながっている I2C バスです。そのポートを設定した I2C Bus コンポーネントと一致させてください。
i2cAddress int32 85 0 から 127 バス上のキーボードのアドレスです。LilyGO T-Deck は 0x55 (85)、M5Stack CardKB は 0x5F (95) です。
hasBacklight bool false キーボード自身が制御するバックライトがあり、バス経由で設定します (LilyGO T-Deck の場合はレジスタ 0x01 の明るさ)。ゲームのコードからは I2CKeyboard::SetBacklight で設定します。

InputCollider

ポインターとタッチの当たり判定の領域です。ボタンやスクロールはここで入力を受け取ります。

インスペクターでの名前: 入力コライダー · カテゴリ: 入力 · 型: DekiInput::InputCollider

プロパティ 型 デフォルト 制約 説明
width float 0 単位 m 当たり判定の幅 (メートル) です。描かれているものと一致させる必要はありません。
height float 0 単位 m 当たり判定の高さ (メートル) です。
paddingLeft float 0 単位 m 左端の外側に広げる当たり判定 (メートル) です。小さな操作部品を、見た目を大きくせずに指で押しやすくするのに便利です。
paddingRight float 0 単位 m 右端の外側に広げる当たり判定 (メートル) です。
paddingTop float 0 単位 m 上端の外側に広げる当たり判定 (メートル) です。
paddingBottom float 0 単位 m 下端の外側に広げる当たり判定 (メートル) です。
consumeInput bool true 押下をここで止め、下にあるオブジェクトへ届かないようにします。後ろにあるものを妨げないオーバーレイではオフにしてください。

TrackballComponent

GPIO ピンにつないだトラックボールです。矢印キーと Enter として、またはポインターとして使えます。

インスペクターでの名前: トラックボール · カテゴリ: 入力 · 型: DekiInput::TrackballComponent

プロパティ 型 デフォルト 制約 説明
mode enum "Keys" Keys, Pointer キー: 転がすと矢印キーを押し、クリックは Enter になります。ポインター: 転がすとポインターが動き、クリックはマウスボタンになります。
pixelsPerStep int32 4 1 から 64 ポインターモード: ボールの 1 ステップでポインターが動くピクセル数です
glideMs float 0 0 から 1000 ポインターモード: ボールが止まった後もポインターが滑り続ける時間 (ミリ秒) で、ThinkPad の TrackPoint のような動きになります。0 にすると転がしたステップ分だけ正確に動きます。
acceleration float 1 1 から 8 滑走ありのポインターモード: ボールを速く回したとき、ゆっくり転がしたときに比べて 1 ステップでポインターが何倍遠くまで進むかです。1: 加速なし。
upPin int32 -1 -1 から 48 ボールが上に転がるとパルスを出す線です
downPin int32 -1 -1 から 48 ボールが下に転がるとパルスを出す線です
leftPin int32 -1 -1 から 48 ボールが左に転がるとパルスを出す線です
rightPin int32 -1 -1 から 48 ボールが右に転がるとパルスを出す線です
clickPin int32 -1 -1 から 48 クリックスイッチです (-1 = なし)
clickActiveLow bool true 押したときにクリックがピンを Low にする (オン) か、High にする (オフ) かです

変更履歴

変更履歴は英語です。

0.19.0

Changed

  • minEngine 0.19.0: built against engine 0.19.0, whose component metadata records the package each class is in. A build of this package from before does not load and is rebuilt.

Added

  • Japanese, Simplified Chinese and Korean: editor/lang/ja.json, zh.json and ko.json translate the names, tooltips and enum values this package's components show in the Inspector.

0.18.2

Added

  • The keyboard's backlight: I2CKeyboard::SetBacklight(0-255), for a keyboard that sets it itself over the bus (hasBacklight on I2CKeyboardComponent; the LilyGO T-Deck's takes it in register 0x01).
  • The trackball can move like a ThinkPad TrackPoint (pointer mode, glideMs and acceleration on TrackballComponent): rolling sets the pointer going and it glides on briefly after the ball stops, and spinning the ball fast carries it further per step. glideMs 0, the default, moves it exactly by the steps rolled, as before.
  • InputEvent::source: the name the source that sent an event was registered under ("I2CKeyboard", "Trackball", "SDL3", ...), so a listener can tell a trackball's arrows from a keyboard's.
  • RegisterEventCallback returns an id, and UnregisterEventCallback(id) removes the callback. A component that listens must stop before it is destroyed; there was no way to.

それ以前のリリース: CHANGELOG.md


パッケージのリフレクションデータから生成しています (エンジン 0.19.0)。プロパティ名はシーンファイルで使われるキーです。名前を変えても別名が残ります (互換性)。