スクリプト/キー・マウス入力(履歴ID:30)

最終投稿者:Material 6858 mini akasata 更新:2010/03/17 19:07:50
Rmakeでは、マウス入力やキー入力を受け取ることができます。
このページでは、Rmakeにおけるキー・マウス入力を受け取るコードの
例を紹介します。

#テキスト表示領域を用意します。
textID = createText(10, 20, 512, 64)
textID2 = createText(10, 20 + 64, 512, 64)
setText(textID2, "press e and end")

#入力の取得を始めます
startInput()

#ループし続けるように変数を設定します。
loop = true

#loop変数がtrueの間はループし続けます。
while loop

  #入力が入っているかどうか調べます。
  while hasInput()
    #内部にたまっている入力を処理対象とします。
    takeInput()


    if isMouseDown() #マウスのボタンが押されている場合
      #マウスの位置を取得します。
      pos = getMousePosition()
      #位置を表示します。
      setText(textID, "clicked x = ", pos[0], ", y = ", pos[1])

     
    elsif isMouseMove() #マウスが動いた場合
      #マウスの位置を取得します。
      pos = getMousePosition()
      #位置を表示します。
      setText(textID, "x = ", pos[0], ", y = ", pos[1]);


    elsif isMouseUp() #マウスのボタンが離された場合
      #マウスの位置を取得します。
      pos = getMousePosition()
      #位置を表示します。
      setText(textID, "uped x = ", pos[0], ", y = ", pos[1])

    elsif isKeyDown("A") #キーAが押された場合
      #メッセージを表示します。
      speak("press A")

    elsif isKeyUp("A") #キーAが離された場合
      #メッセージを表示します。
      speak("up A")

    elsif isKeyDown("E") #キーEが押された場合
      #ループを終了します。
      loop = false

    end
  end

  #入力がないときに無駄に処理をしないように30ミリ秒waitを入れます。
  waitTime(30)

end

#入力の取得を終了します。
endInput()

#テキスト表示領域を全部消します。
deleteTextAll()


startInput()で入力モードを開始します。
endInput()で入力モードを終了します。

入力を受け取るためにはループを用意し、
入力内容を1つずつ処理します。
loop変数をfalseにするとループを抜けます。

hasInput()で処理すべき入力があるかどうかを調べます。

takeInput()で処理すべき入力を処理対象とします。

isMouseDown()で処理対象がマウスのボタンを押したものかどうか判断します。
ここではgetMousePosition()でボタンが押されたときのマウスの位置を取得し、
テキスト表示しています。

isMouseMove()で処理対象がマウスのボタンを動かしたものかどうか判断します。
ここではgetMousePosition()でマウスが動いたときのマウスの位置を取得し、
テキスト表示しています。

isMouseUp()で処理対象がマウスのボタンを話したときのものかどうか判断します。
ここではgetMousePosition()でボタンを離したときのマウスの位置を取得し、
テキスト表示しています。

isKeyDown("A")でキーAが押されたかどうかを判断しています。
ここではメッセージウィンドウに"press A"と表示します。
isKeyDownに渡す引数は、コード入力支援から入力することをお勧めします。

isKeyUp("A")でキーAが離されたかどうかを判断しています。
ここではメッセージウィンドウに"up A""と表示します。
isKeyUpに渡す引数は、コード入力支援から入力することをお勧めします。

isKeyDown("E")でキーEが押されたかどうかを判断しています。
ここでは、loop変数にfalseを代入して処理を終了しています。

waitTime(30)で入力がなくなった場合はスクリプトの実行を30ミリ秒止めて
余分な処理をしないようにします。