βテストにご参加いただきまことにありがとうございます。
次はボタンのサンプルです。
ボタンは、クリックするとtrueを返します。ifでボタンが押されたことを検出します。
サンプルでは、ボタンが押されたことを記録するために、整数値を持つbtn変数をグローバル変数として用意しています。
frameイベントの最初にグローバル変数を使うことを宣言するため、global btnを記述します。
(記述しない場合、btnという名前のローカル変数になってしまいます。)
Begin()-End()の間に、Button()を記述します。ボタンは、入力をもつGUI部品のため、この部品だけのタグをつけます。サンプルでは、”b1″としています。
ifでボタンが押されたらbtn変数に1を代入します。
次にボタンが押されたことをあらわすメッセージを表示します。btn変数が1ならば、ボタンが押されたことになりますのでifで検出します。
ifでGUIの状態変化を検出、状態を記録する変数はグローバル変数にすることがポイントです。
#LAYOUT
import vrmapi
btn = 0
def vrmevent(obj,ev,param):
if ev == 'init':
obj.SetEventFrame()
elif ev == 'broadcast':
dummy = 1
elif ev == 'timer':
dummy = 1
elif ev == 'time':
dummy = 1
elif ev == 'after':
dummy = 1
elif ev == 'frame':
global btn
vrmapi.ImGui().Begin("win1","Sample Window")
vrmapi.ImGui().Text("ボタンテスト")
vrmapi.ImGui().Text("btn変数の状態 =>"+str(btn))
if vrmapi.ImGui().Button("b1", "ボタンその1"):
btn = 1
if btn == 1:
vrmapi.ImGui().Text("ボタンをクリックした")
vrmapi.ImGui().End()
elif ev == 'keydown':
dummy = 1