« HSPTV!メルマガ 第11号 | メイン | 【講座】「教えて!おにたま!!」 »

2006年03月22日

【講座】HSPよく使うフレーズ 第4回 ゲームっぽいキー入力

 さて、今回は”ゲームでも作るかぁ”と思ったけど、何からやってイイ
か分からないという人の為に、”ゲームっぽいキー入力”を紹介します。

シューティングゲームなどのリアルタイムゲームはだいたいこんな構造に
なっています。

1 [初期設定]
2 [キー入力]
3 [表示]
4 [ちょっと待つ]
5 [2へ戻る]

キー入力して、表示して、ちょっと待って、ループ。
ゲームの基本的な構造はどれでもこんな感じだというのを知った時には
おどろいたけどね。
コンピュータさんはぐるぐるまわってがんばってるんだねぇ。

さて、今回はシューティングゲーム風の画面です。
自機っぽい三角形が、カーソルキーで左右に動くというだけのスクリプト
ですが、ゲームの基本を知りたいという人は実行してみてね。

screen 0,200,400
color 0,0,0:boxf
color 0,255,0
mx=5:my=18
*top
;キー入力
getkey key_left,37 ;<-
getkey key_right,39 ;->
;座標変化
if key_left:mx-=1
if key_right:mx+=1
;座標チェック
if mx<0:mx=mxx
if mx>11:mx=mxx
mxx=mx:myy=my
;画面再描画
color 0,0,0:boxf
color 0,255,0
pos mx*16,my*16
mes "▲"
wait 10
goto *top

[HSP3用 me_move.hsp]

では、ちょっとだけ解説。

「color 0,0,0:boxf」では、描画色を黒にしてboxf命令を実行してます。
この場合、ウィンドウ全域の大きさの四角を画面に描きます。
これで、画面をキレイにするわけです。

「getkey key_left,37 ;<-」ここで左のカーソルキーを入力します。
もし、左のカーソルキーが押されていればkey_leftの値が1になります。

次に「if key_left:mx-=1」でkey_leftが1なら、mxの値を1減らします。
「mx-=1」は「mx=mx-1」と同じ動きになります。

キー入力によって表示する座標が変わって、画面の外に出てしまうと困る
ので、変更後のmxをチェックします。

最後に画面にキャラクターを表示して、ぐるぐるの先頭「*top」に
移動します。

以上、20行ちょっとのスクリプトを書くだけで、プレイヤーの入力を反映
した動きをしてくれるワケで、なんだか不思議な感じだよねぇ。

次回はもうちょっとゲームっぽくなるカモ。

(うすあじ)

投稿者 usuaji : 2006年03月22日 23:51

口臭チェッカー市場