HSP3系でのゲームパッドとキーボード両立

 
明日っつうか今日、ボーマス出ます。
出し物は今からつくるよ。
 
その一つの「ミク☆ブラスター」で、ジョイパッド対応の要望が多かったので対応します。

HSP3系でなかなかジョイパッドとキーボードを両立できるソースがくめなかったんだけども
GENKI's HOME PAGE(仮名)さんのモジュールで対応してみました。
 

*sub_key
	;キー入力のためのサブルーチン

	;まずは以前の入力をバックアップ
	kb_esc = k_esc
	kb_left = k_left
	kb_up = k_up
	kb_right = k_right
	kb_down = k_down
	kb_b = k_b
	kb_c = k_c
	kb_d = k_d
	kb_e = k_e
	kb_f = k_f
	kb_r = k_r
	kb_s = k_s
	kb_z = k_z
	kb_x = k_x

	;キー入力を取得
	getkey k_esc,27		;[ESC]
	getkey k_left,37	;[←]
	getkey k_up,38		;[↑]
	getkey k_right,39	;[→]
	getkey k_down,40	;[↓]
	
	getkey k_b,66		;[B]
	getkey k_c,67		;[C]
	getkey k_d,68		;[D]
	getkey k_e,69		;[E]
	getkey k_f,70		;[F]
	getkey k_r,82		;[R]
	getkey k_s,83		;[S]
	getkey k_x,88		;[X]
	getkey k_z,90		;[Z]

	;ジョイスティック入力
	JStick joy, 0x800000-1, jid, 2
	if (joy&1) or (k_left == 1) : k_left = 1 : else : k_left = 0
	if (joy&2) or (k_up == 1) : k_up = 1 : else : k_up = 0
	if (joy&4) or (k_right == 1) : k_right = 1 : else : k_right = 0
	if (joy&8) or (k_down == 1) : k_down = 1 : else : k_down = 0
	if (joy&2048) or (k_z == 1): k_z = 1 : else : k_z = 0	// [Z]
	if (joy&4096) or (k_x == 1): k_x = 1 : else : k_x = 0	// [X]
	if (joy&8192) or (k_c == 1): k_c = 1 : else : k_c = 0	// [C]

	return

 
上記ソースで十字キーとZXC、ゲームパッドどっちでも動くようになります。
 
s_line.hsp、IniEdit.as、m_joystick.hspをcommonにつっこんで開発してます。
これって結構困ってる人いんじゃないのかな、、、私だけ?
 
んで実際判定する時は

 if (k_z == 1) and (kb_z == 0) {
   //Zボタンが押された瞬間の処理
 }

 if (k_z == 1) and (kb_z == 1) {
   //Zボタンが押され続けた時の処理
 }

 if (k_z == 0) and (kb_z == 1) {
   //Zボタンが離された瞬間の処理
 }

こんなかんじで。
 
では会場であいましょう。