Home English

Kuina-chan

くいなちゃんDec 15, 2017


プログラミング言語Kuin」の「inputライブラリ」についてです。

inputライブラリ

ゲームパッドの入力を扱うライブラリ「input.kn」を解説します。
inputライブラリは、コンパイルオプションの実行環境が「wnd(ウインドウアプリ)」のときのみ使用可能です。
inputライブラリに用意されているものはinputライブラリの通りです。
inputライブラリ
名前 説明
input@enableCfgKey ゲームパッドのキーボード割り当てを有効・無効にする関数
input@getCfg ゲームパッドのボタンの割り当て方を取得する関数
input@key キーボードの物理キーの状態を取得する関数
input@pad ゲームパッドのボタンの状態を取得する関数
input@setCfg ゲームパッドのボタンの割り当て方を設定する関数
input@setCfgKey ゲームパッドに割り当てるキーボードのキーを設定する関数
input@Key キーボードの物理キーを表す列挙型
input@PadBtn ゲームパッドのボタンを表す列挙型

input@enableCfgKey

「input@enableCfgKey」はゲームパッドのキーボード割り当てを有効・無効にする関数です(input@enableCfgKey関数の定義)。
input@enableCfgKey関数の定義

 func enableCfgKey(enabled: bool)

enabled ゲームパッドのキーボード割り当てを有効にするならtrue、無効にするならfalse
アプリ起動時にはenabledがtrueに設定されています。

input@getCfg

「input@getCfg」はゲームパッドのボタンの割り当て方を取得する関数です(input@getCfg関数の定義)。
input@getCfg関数の定義

 func getCfg(idx: int, btn: input@PadBtn): int

idx ゲームパッドのインデックス
btn ゲームパッドのボタン
戻り値 割り当てられているゲームパッドのボタン番号(0以上11以下)
左ボタン、上ボタン、右ボタン、下ボタンにはボタンの割り当て情報が無いため、btnに「%left」「%up」「%right」「%down」を指定することはできません。
「input@getCfg」が生成する例外はinput@getCfg関数の例外の通りです。
input@getCfg関数の例外
発生条件 ビルド 例外コード
(16進数)
idxが0以上3以下の範囲外 dbgのみ E9170006
btnが有効範囲外 dbgのみ E9170006

input@key

「input@key」はキーボードの物理キーの状態を取得する関数です(input@key関数の定義)。
input@key関数の定義

 func key(key_: input@Key): bool

key_ キーボードの物理キー
戻り値 キーが押されていればtrue、押されていなければfalse
「wnd@key」との違いとして、wnd@keyはOSに設定された仮想的なキーの状態を取得でき、input@Keyは物理的なキーの状態を取得できます。 OSの設定でキー配置が変更された場合、wnd@keyは影響を受けますが、input@keyは変わりません。

input@pad

「input@pad」はゲームパッドのボタンの状態を取得する関数です(input@pad関数の定義)。
input@pad関数の定義

 func pad(idx: int, btn: input@PadBtn): int

idx ゲームパッドのインデックス
btn ゲームパッドのボタン
戻り値 離されていたら0、押された瞬間は1、押され続けた場合は2以上
ゲームパッドのボタンの状態は、wnd@act関数を呼び出すたびに更新されます。 ボタンが押され続けると、この関数の戻り値は1ずつ増加します。
「input@pad」が生成する例外はinput@pad関数の例外の通りです。
input@pad関数の例外
発生条件 ビルド 例外コード
(16進数)
idxが0以上3以下の範囲外 dbgのみ E9170006
btnが有効範囲外 dbgのみ E9170006

input@setCfg

「input@setCfg」はゲームパッドのボタンの割り当て方を設定する関数です(input@setCfg関数の定義)。
input@setCfg関数の定義

 func setCfg(idx: int, btn: input@PadBtn, newBtn: int)

idx ゲームパッドのインデックス
btn ゲームパッドのボタン
newBtn 割り当てるゲームパッドのボタン番号(0以上11以下)
左ボタン、上ボタン、右ボタン、下ボタンにはボタンの割り当て情報が無いため、btnに「%left」「%up」「%right」「%down」を指定することはできません。
「input@setCfg」が生成する例外はinput@setCfg関数の例外の通りです。
input@setCfg関数の例外
発生条件 ビルド 例外コード
(16進数)
idxが0以上3以下の範囲外 dbgのみ E9170006
btnが有効範囲外 dbgのみ E9170006
newBtnが「0以上11以下」の範囲外 dbgのみ E9170006

input@setCfgKey

「input@setCfgKey」はゲームパッドに割り当てるキーボードのキーを設定する関数です(input@setCfgKey関数の定義)。
input@setCfgKey関数の定義

 func setCfgKey(idx: int, btn: input@PadBtn, keys: []input@Key)

idx ゲームパッドのインデックス
btn ゲームパッドのボタン
keys 割り当てるキーの配列(最大4個)
アプリ起動時の設定はinput@PadBtnを参照してください。
「%left」「%up」「%right」「%down」にもキーを割り当てることができます。
「input@setCfgKey」が生成する例外はinput@setCfgKey関数の例外の通りです。
input@setCfgKey関数の例外
発生条件 ビルド 例外コード
(16進数)
idxが0以上3以下の範囲外 dbgのみ E9170006
btnが有効範囲外 dbgのみ E9170006
keysの要素が4個を超えている dbgのみ E9170006

input@Key

「input@Key」はキーボードの物理キーを表す列挙型で、定義はinput@Key列挙型の定義の通りです。
wnd@Key列挙型の定義
名前 説明
%_0 0キー
%_1 1キー
%_2 2キー
%_3 3キー
%_4 4キー
%_5 5キー
%_6 6キー
%_7 7キー
%_8 8キー
%_9 9キー
%a Aキー
%altL 左Altキー
%altR 右キー
%apos 'キー
%b B
%backslash \キー
%bracketL [キー
%bracketR ]キー
%bs BackSpaceキー
%c Cキー
%capsLock CapsLockキー
%circumflex ^キー
%comma ,キー
%convert 変換キー
%ctrlL 左Ctrlキー
%ctrlR 右Ctrlキー
%d Dキー
%del Deleteキー
%down 下キー
%e Eキー
%end_ Endキー
%enter Enterキー
%equal =キー
%esc Escキー
%f Fキー
%f1 F1キー
%f10 F10キー
%f11 F11キー
%f12 F12キー
%f2 F2キー
%f3 F3キー
%f4 F4キー
%f5 F5キー
%f6 F6キー
%f7 F7キー
%f8 F8キー
%f9 F9キー
%g Gキー
%grave `キー
%h Hキー
%home Homeキー
%i Iキー
%ins Insertキー
%j Jキー
%k Kキー
%kana カナキー
%kanji 漢字キー
%l Lキー
%left 左キー
%m Mキー
%menu メニューキー
%minus -キー
%mul *キー
%n Nキー
%noConvert 無変換キー
%num0 テンキーの0
%num1 テンキーの1
%num2 テンキーの2
%num3 テンキーの3
%num4 テンキーの4
%num5 テンキーの5
%num6 テンキーの6
%num7 テンキーの7
%num8 テンキーの8
%num9 テンキーの9
%numEnter テンキーのEnter
%numLock NumLockキー
%numMinus テンキーの-
%numPeriod テンキーの.
%numPlus テンキーの+
%numSlash テンキーの/
%o Oキー
%p Pキー
%pageDown PageDownキー
%pageUp PageUpキー
%pause Pauseキー
%period .キー
%q Qキー
%r Rキー
%right 右キー
%s Sキー
%scrollLock ScrollLockキー
%semicolon ;キー
%shiftL 左Shiftキー
%shiftR 右キー
%slash /キー
%space スペースキー
%sysRq SysRqキー
%t Tキー
%tab Tabキー
%u Uキー
%up 上キー
%v Vキー
%w Wキー
%winL 左Windowsキー
%winR 右Windowsキー
%x Xキー
%y Yキー
%yen ¥キー
%z Zキー
「wnd@Key」との違いとして、wnd@KeyはOSに設定された仮想的なキーを表し、input@Keyは物理的なキーを表します。 OSの設定でキー配置が変更された場合、wnd@Keyは影響を受けますが、input@Keyは変わりません。

input@PadBtn

「input@PadBtn」はゲームパッドのボタンを表す列挙型で、定義はinput@PadBtn列挙型の定義の通りです。
input@PadBtn列挙型の定義
名前 説明 キーボードの割り当ての初期状態
%a Aボタン Zキー、Returnキー、スペースキー
%b Bボタン Xキー、BackSpaceキー
%c Cボタン Cキー
%d Dボタン Vキー
%down 下ボタン 下キー
%e Eボタン
%f Fボタン
%g Gボタン
%h Hボタン
%i Iボタン
%l Lボタン Aキー
%left 左ボタン 左キー
%menu メニューボタン Escキー
%r Rボタン Sキー
%right 右ボタン 右キー
%up 上ボタン 上キー
これらのボタンが実際のゲームパッドのどのボタンに割り当てられるかは、ゲームパッドの製品によって異なります。 そのため、input@setCfg関数などで割り当て方を設定します。
キーボードからも操作できるように、ゲームパッドのボタンにはキーボードのキーが割り当てられています。 これらのキーの設定はinput@setCfgKey関数で変更できます。
1513347173ja