HSP3 ゲームのプログラミング | |
(4) キー入力とキャラクタ移動
キー入力については、HSP3 プログラミングの基礎Vの「キー入力情報取得」を参照すること。プログラムでは、入力されたキーの内容によって、座標を加算していくだけである。
(move41.hsp)
上下左右のカーソルキーでキャラクタを移動させる。
buffer 1 ;ウィンドウID 1番 picload "move2.bmp" ;画像ファイル読み込み screen 0 ;ウィンドウID 0番 gmode 2, 32, 32 ;コピーモード設定 x = 100 : y = 100 dx = 8 : dy = 8 repeat redraw 0 ;仮描画 color 255, 255, 255 ;白色。背景と同じ色。 boxf ;ウィンドウと同じサイズの四角形を塗りつぶしで描画する。 color 0, 0, 0 ;黒色 pos x, y ;カレントポジション設定 gcopy 1, 0, 0 ;画像コピー stick key, 15 ;キー入力 if key & 1 : x = x - dx ;左 if key & 2 : y = y - dy ;上 if key & 4 : x = x + dx ;右 if key & 8 : y = y + dy ;下 if key & 128 : end ;[Esc] if x >= ginfo_winx - 32 : x = ginfo_winx - 32 ;右壁に衝突。 if x <= 0 : x = 0 ;左壁に衝突。 if y >= ginfo_winy - 32 : y = ginfo_winy - 32 ;下壁に衝突。 if y <= 0 : y = 0 ;上壁に衝突。 redraw 1 ;実描画 await 100 ;無限ループの時のお約束 loop stop
カーソル移動キーの矢印と同じ方向にキャラクタが移動する。押している間、移動し続けるが、壁に当たると停止する。また、上下の一つと左右の一つを同時に押すと斜めに移動する。
キャラクタ移動のサンプルmove23.hspを元に作り替えたものである。
(move95.hsp)
上下左右のカーソルキーでキャラクタを移動させる。2種類の画像を切り替える。
(move96.hsp)
キャラクタを移動させ、上壁に当衝突したら下壁から、左壁に当衝突したら右壁から出てくるようにする。
2007 © Hiroshi Masuda |