HSP3 横スクロールシューティング

先日はHSPで星もどきを多重スクロールするプログラムについて紹介しましたが、ああいうのはいかにも横シューの背景であるのでレーザーを撃てる自機を作ってみます。

とりあえず、以下のプログラムを実行してみてください。なお、今回は敵のプログラム部分は抜いてあります。

 

動作イメージがわかったところで各セクションについて説明を加えていきます。

各命令についてはHSPの命令リファレンスなどを参照してください。

 

 

//ショットフラグ用の変数

・この配列変数には、「レーザーが画面に表示されているか」のフラグが格納されます。

・上のサンプルでは配列が10ですので、画面上には同時に10本のレーザーが表示できます。

 

//画面初期化

・次フレーム描画のためにここで画面を一度まっさらな状態にしています。

 

//キー入力判定

・getkey及びstick命令でキー入力を取得しています。

・stick命令は同時押し判定が必要な時に便利です。

 

//ショットフラグを立てる

・スペースキーが押された場合にショットフラグを立てます。配列の若い方が優先されます。

・shotLimitで1フレーム中にフラグを立てられる数を1つに制限しています。

 

//自機移動

・キー入力に基づいて自機を移動します。サンプルでは上下左右ともに移動速度は4ドット/フレームです。

 

//レーザー描画

・ショットフラグに基づいてレーザーを描画します。

・サンプルではlaserLength(レーザー長)は100です。自機の前に突然長さ100のレーザーが現れるのは不自然ですから、64行目で自機からレーザーが伸びる処理をしています。レーザー長が100に達するまではレーザーの始点は自機に追従します。

・レーザーは10ドット/1フレームの速度で発射されます。

・65行目は実際にline命令でレーザーを描画しています。

・66行目ではlaserLengthが100に達したレーザーを画面右にスクロールしています。レーザ長や速度を変更する場合は、64行目のlaserLengthとlaserPosXに数値を一致させなければなりません。

・67行目では、画面外に出たレーザーのショットフラグを解除(下ろす)しています。

 

//背景スクロール

前述の通り、前回のプログラムを使用しています。

 

//画面に反映

・試してもらえばわかりますが、redraw部分がないと画面がちらつきます。

 

 

ざっと説明させてもらいましたが、不明な点などはコメント欄にお寄せいただければ可能な限りお答えいたします。

それでは今回はこの辺で。

 

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です