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部分がないと画面がちらつきます。

 

 

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

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

 

 

コンデジを買った SONY DSC-RX100

買ったのはちょっと前なのだが、さすがに何枚か写真を撮ってこないと記事にならないので投下が遅くなってしまった。

SONY Cyber-Shot DSC-RX100。

RsIMG_2510

 

当初は予算の都合によりOLYMPUS XZ-1でも買おうかと思っていたのだが、発売から日にちがたち、M2が出て値段が下がってきたのでこの機種に決めた。

価格は42,000円くらいだった。ソニーストアだと6万くらいするようだ。

RsIMG_2512

 

箱を開けるとこんな感じ。アルミ製のボディの重量感がちょうどいい。造りはさすがに高級コンデジなだけはある。

 

詳しいレビューは上級者の方々にお任せするとして、撮影してみたものを少々。

ほとんどjpg撮って出しである。購入前にもさんざん撮影画像を見てきたが、やはり1inchCMOSはすごい。

なお、画像はflickrにリンクしてある。

 

Picture03

Picture02

Picture04

 

picture05

なんでも器用に撮れすぎてメインの立場がなくなる、という話も見たがたしかにこのボディサイズでこれだけ撮れれば十分すぎると思う。

 

picture06

 

まあ今回はこんなところで。