アイワナ製作・Gamemakerを解説するwikiです。

キーボード


ゲームをするにあたってユーザーの入力は不可欠です。その一つとしてキーボードがあげられます。
キャラクターの移動やコマンドの選択などなど。それを扱う関数がこちらになります。

アイワナでいうとキッド君の移動メニュー画面での選択などです。新しいボタンを追加したい時などに役立ちます。



キー入力をチェックするには、以下の関数を利用します。


keyboard_check(キー)  指定したキーコードが押されているかどうか返します。
例:
Createイベント

global.Up_key = vk_up // global.Up_keyに上カーソルキーのキーコードを代入する
global.Down_key = vk_down // global.Down_keyは下カーソルキーのキーコードを代入する

Stepイベント

if(keyboard_check(global.Up_key) == true){ y += -3 } // もし上カーソルキーが押されたら(x,y+3)する。
if(keyboard_check(global.Down_key) == true){ y += 3 }

keyboard_check_pressed(キー)  指定したキーコードが、直前のステップで押されたかどうか返します。
                                      上の場合は押されてる間ずっと真になりますが、こちらは直前のステップで押されたステップだけ真になります。

keyboard_check_released(キー)  指定したキーコードが、直前のステップで離されたかどうかを返します。
                                     ※こちらも直前のステップで離されたステップだけ真になります。

keyboard_check_direct(キー)  ハードウェア的に直接調べ、指定したキーコードが押されているかどうかを返します。また、キーをより詳しく判定します。

例:
if(keyboard_check_direct(vk_lshift) == true){ // もし左シフトキーを押したら
global.sneak = true  // global.sneakを真にする
}else{ global.sneak = false } // それ以外は偽にする



キーボードの状態を変える関数を以下になります。


keyboard_get_numlock()  numlock されているかどうかを返します。

keyboard_set_numlock(数字)  numlock の状態を変更します。数字にはon(1)もしくはoff(0)を入れます。

keyboard_key_press(キー)  指定したキーが押されている状態にします。
例:
CREATEイベント
Timer = 0
global.Left_key = vk_left // global.Left_keyに左カーソルキーのキーコードを代入する
global.Right_key = vk_right // global.Right_keyに右カーソルキーのキーコードを代入する

STEPイベント
Timer += 1 // 変数Timerに1加算する

if(Timer >= 0 && Timer <= 100){ // もし、Timerが0以上100以下の時
keyboard_key_press(global.Right_key) // 右カーソルキーを押した状態にする
}
if(Timer >= 101 && Timer <= 200){ // もし、Timerが101以上200以下の時
keyboard_key_press(global.Left_key) // 左カーソルキーを押した状態にする
}

keyboard_key_release(キー)  指定したキーが離された状態にします。

keyboard_clear(キー)  指定したキーの状態をクリアします。 一度キーを離すまで、キーボードイベントの発生を止めます。

io_clear()  キーボード、マウスの入力を全てクリアします。

io_handle()  入力を扱い、キーボードやマウスの状態を更新します。

keyboard_wait()  キーボード入力があるまで停止します。


仮想キーコード一覧

キーに使える仮想キーコードです。

vk_nokey 何も押されていない状態 
vk_anykey 何か押されていない状態 
vk_left 左カーソル 
vk_right 右カーソル 
vk_up 上カーソル 
vk_down 下カーソル 
vk_enter Enter 
vk_escape ESC 
vk_space Space 
vk_shift Shift 
vk_control Ctrl 
vk_alt Alt 
vk_backspace バックスペース 
vk_tab TAB 
vk_home HOME 
vk_end END 
vk_delete DELETE 
vk_insert INSERT 
vk_pageup PageUP 
vk_pagedown PageDOWN 
vk_pause ポーズ 
vk_printscreen PrintScreen 
vk_f1 ... vk_f12 F1〜F12 
vk_numpad0 ... vk_numpad9  テンキーの0-9 
vk_multiply テンキーの* 
vk_divide テンキーの/ 
vk_add テンキーの+ 
vk_subtract テンキーの- 
vk_decimal テンキーの. 

英数字の仮想キーコードを利用する場合は
ord("Z") // Zキー
ord("4") // 4キー
この用に書きます。
例:if(keyboard_check_direct(ord("Z")) == true){ // もしZキーを押したら
instance_create(x,y,bullet) // bulletを(x,y)に生成する
}

以下の仮想キーコードはkeyboard_check_directのみで使える仮想キーコードです。
vk_lshift左Shift
vk_lcontrol左Ctrl
vk_lalt左Alt
vk_rshift右Shift
vk_rcontrol右Ctrl
vk_ralt右Alt

Wiki内検索

Menu

アイワナ製作@基本・応用wiki




GMの基本的な使い方

GML概要編

GML編---一般的な計算

GML編---ゲーム動作

GML編---ユーザー入力

GML編---グラフィックス

GML編---サウンド

GML編---etc...

GML編---リファレンス

アイワナ製作編

基本応用編

雰囲気関係編

※背景に色がついているものは工事中のページです。
【メニュー編集】

メンバーのみ編集できます

メンバー募集!