キー入力を1行で取得する関数(履歴ID:642)

最終投稿者:Material 305033 1 mini cfm_ 更新:2015/12/09 19:22:47
最初にinput_start()、最後にinput_end()と書けば、
input_get()の1行を使うだけでキー入力が取得できます。
一番下にテストスクリプトがあります。
#入力開始
def input_start()
		startInput()
		key_char=splitString("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,RIGHT,LEFT,UP,DOWN,SPACE,SHIFT,ENTER,ESC,0,1,2,3,4,5,6,7,8,9", ",")
		i=0
		while i<44
			setVariable("input_" + key_char[i],false)
			i=i+1
		end
end

#入力を取得
def input_get(key)
	if hasInput() then key_char=splitString("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,RIGHT,LEFT,UP,DOWN,SPACE,SHIFT,ENTER,ESC,0,1,2,3,4,5,6,7,8,9", ",");end
	while hasInput()
		takeInput()
		i=0
		while i<44
			keychar2=key_char[i]
			setVariable("input_" +keychar2,getVariable("input_" + keychar2) || isKeyDown(keychar2))
			if isKeyUp(key_char[i]) then setVariable("input_" + keychar2,false);end
			i=i+1
		end
	end
	return getVariable("input_" + key)
end

#入力終了
def input_end(key)
	endInput()
end


テストスクリプト
input_start()
speak("START")
while !input_get("ENTER")
end
speak("OK")
input_end()
#実行結果:最初に「START」と表示され,エンターキーを押すと「OK」と表示される。