キーボード・ゲームパッド・マウスの入力を扱います。
Input.x( pad_number=0 )
Input.y( pad_number=0 )
カーソルキー・パッドの方向キーの入力を、X座標かY座標の増分(-1, 0, 1のいずれか)で返します。
pad_numberは省略すると0(パッド0もしくはキーボード)になります。
Input.keyDown?( key_code )
Input.keyPush?( key_code )
Input.keyRelease?( key_code )
Input.key_down?( key_code )
Input.key_push?( key_code )
Input.key_release?( key_code )
※DXRuby1.4.1 (release系が)new!
キーボードのキーの押下状態をtrue(押されている)/false(押されていない)で返します。
key_down?は押されているあいだ、key_push?は押した瞬間のみ、trueになります。key_release?は離された瞬間のみtrueになります。
key_codeに使える代表的な定数は以下のものです。
それ以外の定数については4.10 キーコード定数を参照してください。
K_ESCAPE
K_TAB
K_RETURN(フルキーのEnter)
K_LCONTROL
K_LSHIFT
K_LMENU(ALTキー)
K_SPACE
K_A(アルファベットいろいろ)
K_1(フルキーの数字いろいろ)
K_F1(ファンクションキーいろいろ)
K_NUMPAD0(テンキーの数字いろいろ)
K_NUMPADENTER(テンキーのEnter)
K_PGUP(PageUp)
K_PGDN(PageDown)
K_UP
K_LEFT
K_RIGHT
K_DOWN
デフォルトでは十字ボタンとカーソルキー、P_BUTTON0とZ、P_BUTTON1とX、P_BUTTON2とCが割り当てられています。
Input.padDown?( button_code, pad_number=0 )
Input.padPush?( button_code, pad_number=0 )
Input.padRelease?( button_code, pad_number=0 )
Input.pad_down?( button_code, pad_number=0 )
Input.pad_push?( button_code, pad_number=0 )
Input.pad_release?( button_code, pad_number=0 )
※DXRuby1.4.1 (release系が)new!
パッドのボタン状態をtrue(押されている)/false(押されていない)で返します。
pad_down?は押されているあいだ、pad_push?は押した瞬間のみ、trueになります。pad_release?は離された瞬間のみtrueになります。
pad_numberは省略すると0(パッド0もしくはキーボード)になります。
button_codeに使える定数は以下のものです。
P_UP
P_LEFT
P_RIGHT
P_DOWN
P_BUTTON0(ボタン15まで)
P_L_UP(アナログ左スティックのデジタル入力)
P_L_LEFT
P_L_RIGHT
P_L_DOWN
P_R_UP(アナログ右スティックのデジタル入力)
P_R_LEFT
P_R_RIGHT
P_R_DOWN
P_D_UP(アナログPOVのデジタル入力)
P_D_LEFT
P_D_RIGHT
P_D_DOWN
pad_number0の時、デフォルトでは十字ボタンとカーソルキー、P_BUTTON0とZ、P_BUTTON1とX、P_BUTTON2とCが割り当てられています。
Input.setRepeat( wait, interval )
Input.set_repeat( wait, interval )
keyPush?、padPush?メソッドを、オートリピートモードにします。
waitは初めの入力があってから、リピート開始するまでの時間(フレーム数)を表します。
intervalはリピート開始してからの、入力がONになる間隔(フレーム数)です。
両方を1にすると毎フレーム入力、つまりkeyDown?/padDown?と同じ動作になります。
両方を0にすると解除です。
Input.setKeyRepeat( key, wait, interval )
Input.set_key_repeat( key, wait, interval )
特定のキーのみkeyPush?メソッドをオートリピートモードにします。
詳細はInput.setRepeatを参照してください。
Input.setPadRepeat( pad, wait, interval, padnumber=0 )
Input.set_pad_repeat( pad, wait, interval, padnumber=0 )
特定のパッドのボタンのみpadPush?メソッドをオートリピートモードにします。
詳細はInput.setRepeatを参照してください。
Input.setConfig(pad, key, pad_number=0 )
Input.set_config(pad, key, pad_number=0 )
padはP_???のパッドキー定数、keyはK_???
この設定の効果はkeyPush?/keyDown?/padPush?/padDown?メソッドを使った場合に有効で、どちらかを押したら、
対応したもう片方のボタンも押されたことになります。
デフォルトではパッド0の十字ボタンとカーソルキー、P_BUTTON0とZ、P_BUTTON1とX、P_BUTTON2とCが割り当てられています。
Input.mousePosX
Input.mousePosY
Input.mouse_pos_x
Input.mouse_pos_y
マウスの座標を返します。
座標はウィンドウの左上を(0,0)としたスクリーン座標です。
Input.setMousePos( x, y )
Input.set_mouse_pos( x, y )
マウスの座標を設定します。
座標はウィンドウの左上を(0,0)としたスクリーン座標です。
Input.mouseDown?( button )
Input.mousePush?( button )
Input.mouseRelease?( button )
Input.mouse_down?( button )
Input.mouse_push?( button )
Input.mouse_release?( button )
※DXRuby1.4.1 (release系が)new!
マウスのボタン状態をtrue/falseで返します。
mouse_down?は押されているあいだ、mouse_push?は押した瞬間のみ、trueになります。mouse_release?は離された瞬間のみtrueになります。
buttonはM_LBUTTON、M_MBUTTON、M_RBUTTONでそれぞれ左ボタン、中ボタン、右ボタンです。
Input.mouseWheelPos
Input.mouseWheelPos=val
Input.mouse_wheel_pos
Input.mouse_wheel_pos=val
マウスのホイール位置を設定または取得します。
Input.mouseEnable=val
Input.mouse_enable=val
マウスカーソルがウィンドウ上にある場合に、カーソルを描画するどうかを指定します。
trueで描画、falseで描画しないになります。
初期値はtrueです。
Input.keys
現在押されているキーのキー定数を配列にして返します。
Input.pads(pad_number = 0)
現在押されているパッドのボタン定数を配列にして返します。
Input.update
入力情報を更新します。
Window.loopの中で同じ処理がされていますので、Window.loopを使わずに自分でゲームループを組み立てるときにだけ使ってください。
通常はfalseを返しますが、ウィンドウを閉じる操作がされたときにtrueを返します。
これを無視するとウィンドウを閉じる操作(右上のxボタンやALT+F4)が無視されるようになります。
Input.pad_num
現在接続されているパッドの数を返します。
Input.pad_axis(pad_number = 0)
アナログパッドの軸の入力を[x, y, z, rx, ry, rz]の配列で返します。値はそれぞれ0.0〜1.0のFloatオブジェクトです。
存在しない軸については0.0固定となります。
DirectInputデバイスの場合、デフォルトでは左スティックがxとy、右スティックがzとrzに入ります。
Input.pad_lstick(pad_number = 0)
アナログパッドの左スティックの入力を-1.0〜1.0に補正して返します。
デバイスの定義により中心はきっかり0にはならない場合があります。
Input.pad_rstick(pad_number = 0)
アナログパッドの右スティックの入力を-1.0〜1.0に補正して返します。
デバイスの定義により中心はきっかり0にはならない場合があります。
Input.pad_pov(pad_number = 0)
アナログパッドのPOV(ハットスイッチ。通常のスティック付パッドの場合は十字ボタン)の入力を角度の100倍の値(0〜335999)で返します。
十字ボタンの場合は4500ごとの値になります。
Input.pad_lx(pad_number = 0)
Input.pad_ly(pad_number = 0)
Input.pad_rx(pad_number = 0)
Input.pad_ry(pad_number = 0)
Input.pad_pov_x(pad_number = 0)
Input.pad_pov_y(pad_number = 0)
Input.set_cursor(cursor_type)
※DXRuby1.4.1 new!
マウスカーソルの形状を変更します。以下の値が使用できます。
IDC_APPSTARTING 標準の矢印カーソルと小さい砂時計カーソル
IDC_ARROW 標準の矢印カーソル
IDC_CROSS 十字カーソル
IDC_HAND ハンドカーソル
IDC_HELP 矢印と疑問符
IDC_IBEAM アイビーム( 縦線)カーソル
IDC_NO 禁止カーソル( 円に左上から右下への斜線)
IDC_SIZEALL 4 方向の矢印カーソル
IDC_SIZENESW 右上と左下を指す両方向矢印カーソル
IDC_SIZENS 上下を指す両方向矢印カーソル
IDC_SIZENWSE 左上と右下を指す両方向矢印カーソル
IDC_SIZEWE 左右を指す両方向矢印カーソル
IDC_UPARROW 上を指す垂直の矢印カーソル
IDC_WAIT 砂時計カーソル