画面右上の隙間から降下してきます。
で、左へ旋回、画面左方向へ真っ直ぐ飛んでゆきます。
敵機には出現してからのフレーム数をカウントする変数を持たせているので、『40フレームまで真っ直ぐ降下、その後X方向のベクトルを加算と同時にY方向のベクトルを減少、X方向ベクトルが一定値に到達したらY方向ベクトルは0にして水平方向の運動に移行』って感じで今回みたいな敵機の動きも楽に実装できます。
画面下の対空ミサイルと、もう少し先で天井に付いている固定砲台も実装して、これで回転砲台の手前までの敵機は全て完了しました。
難関、回転砲台に突入する前に実行ファイルをアップしておきます。
http://multip.net/view/N6dOXGEyWk
リンク先の四角い枠の下のほうにある『ダウンロード』をクリックでダウンロード出来ます。
ZIPファイルなので解凍してから、フォルダ内のexeファイルをダブルクリックで実行して遊んでください。
プログラムソースのテキストも同梱されています。
操作方法
自機移動 ・・・・ 矢印キー OR ジョイパッド方向ボタン
波動砲ため ・・・・ Zキー OR ジョイパッドAボタン を押しっぱなし
波動砲発射 ・・・・ Zキー OR ジョイパッドAボタン を離す
ESCキーでプログラム終了
自機が敵機や敵弾、背景と衝突した場合もプログラム終了
PR
背景の段差を降りてくる歩行戦車実装

2機目の歩行戦車がちょうど足場が無くなって落下中です。
2機とも段差をトントンと降りて来ます。
久々の更新です。
忘れてたわけじゃないんだからねっ!(笑)
仕事の書類やレポートでエクセルとかPCは使っていたんですが、開発環境の起動は自粛していました。
ちょっと集中しなきゃならない仕事があって、たとえ息抜きのつもりでもコッチに手を付けるとどっちが息抜きかわからなくなる事は明白だったので。
ここ1、2週間は仕事モードに切り替えていました。
やっぱり継続してやってないとモチベーション下がりますね。
開発環境を起動するのにちょっと気合が必要でした(笑)。
はじめてしまえばそんな気持ちはあっさり消えましたが・・・。
今回の歩行戦車実装にあたって、背景との当たり判定を座標を渡して判定結果のみを返す関数にしておいた事が有効に作用しました。
移動に背景の影響を受ける敵機も、今後はサクサク実装できそうです。
2機目の歩行戦車がちょうど足場が無くなって落下中です。
2機とも段差をトントンと降りて来ます。
久々の更新です。
忘れてたわけじゃないんだからねっ!(笑)
仕事の書類やレポートでエクセルとかPCは使っていたんですが、開発環境の起動は自粛していました。
ちょっと集中しなきゃならない仕事があって、たとえ息抜きのつもりでもコッチに手を付けるとどっちが息抜きかわからなくなる事は明白だったので。
ここ1、2週間は仕事モードに切り替えていました。
やっぱり継続してやってないとモチベーション下がりますね。
開発環境を起動するのにちょっと気合が必要でした(笑)。
はじめてしまえばそんな気持ちはあっさり消えましたが・・・。
今回の歩行戦車実装にあたって、背景との当たり判定を座標を渡して判定結果のみを返す関数にしておいた事が有効に作用しました。
移動に背景の影響を受ける敵機も、今後はサクサク実装できそうです。
固定砲台実装

基地内に突入すると、ウォーリーがワラワラ出現。
そこを過ぎると・・・

固定砲台登場。
一応自機との位置関係で砲身が動きます。
固定砲台は32×32ピクセルで描けるサイズなんだけども、弾を発射する時に他の敵機と同じ関数で発射時の弾の座標を決めたりとか何かと便利なんで64×64ピクセルのデータになっています。
で、画像データは当然スカスカなんだけど、どこに描くかで失敗しました。
最終的な形のように上向きの砲台は下よせで、下向きの砲台は上よせで描けば問題無かったんですが、僕は最初何も考えず中心揃えで描きました。
うまく背景に砲台が固定されているように見せるためにはY座標を調整します。
その際、中心揃えで描いているとY座標の値が背景の壁の中といったことがおきてきます。
それでも表示上は問題ありません。
では、どこに問題が?
それは敵弾発射です。
砲台は当然ですが名前の通り弾を発射します。
発射された敵弾は画面の外に消えるか背景に当たるまで飛び続けます。
つまり敵弾と背景には当たり判定があるわけで、砲台の座標が背景の中にあると、発射された弾は発射された瞬間に壁との当たり判定に引っかかって消滅してしまいます。
プログラム上は敵弾関係の関数に問題無いはずなのに、なぜ固定砲台だけが弾を発射してくれないのか結構悩ませられました。
おバカですなあ(笑)
基地内に突入すると、ウォーリーがワラワラ出現。
そこを過ぎると・・・
固定砲台登場。
一応自機との位置関係で砲身が動きます。
固定砲台は32×32ピクセルで描けるサイズなんだけども、弾を発射する時に他の敵機と同じ関数で発射時の弾の座標を決めたりとか何かと便利なんで64×64ピクセルのデータになっています。
で、画像データは当然スカスカなんだけど、どこに描くかで失敗しました。
最終的な形のように上向きの砲台は下よせで、下向きの砲台は上よせで描けば問題無かったんですが、僕は最初何も考えず中心揃えで描きました。
うまく背景に砲台が固定されているように見せるためにはY座標を調整します。
その際、中心揃えで描いているとY座標の値が背景の壁の中といったことがおきてきます。
それでも表示上は問題ありません。
では、どこに問題が?
それは敵弾発射です。
砲台は当然ですが名前の通り弾を発射します。
発射された敵弾は画面の外に消えるか背景に当たるまで飛び続けます。
つまり敵弾と背景には当たり判定があるわけで、砲台の座標が背景の中にあると、発射された弾は発射された瞬間に壁との当たり判定に引っかかって消滅してしまいます。
プログラム上は敵弾関係の関数に問題無いはずなのに、なぜ固定砲台だけが弾を発射してくれないのか結構悩ませられました。
おバカですなあ(笑)
ウォーリー(仮名)実装

基地内突入時に出現する敵機を勝手にウォーリーと名付けて(笑)実装しました。
自機に向かってゆっくりと進んできます。
こいつは動くルートが固定されていない上に狭い通路部分で出現するので、敵機として初めて背景との当たり判定を持っています。
進行方向の少し先の座標で背景と当たり判定を行って、もし当たっていればその方向成分のベクトルを0にします。
進行方向の少し先で判定するってところがポイントで、もし敵機の座標位置まんまで判定を行うと、当たった時の進行方向に関わらずベクトルがX、Y成分共に0にされてしまうので、壁に当たった瞬間から突き刺さったかのようにまったく動かなくなります。
その部分でひっかかって少し苦労しましたが、なんとか実装完了しました。
あとは、コイツがわらわらと無数に出てくるように敵のデータファイルを書き足します。
基地内突入時に出現する敵機を勝手にウォーリーと名付けて(笑)実装しました。
自機に向かってゆっくりと進んできます。
こいつは動くルートが固定されていない上に狭い通路部分で出現するので、敵機として初めて背景との当たり判定を持っています。
進行方向の少し先の座標で背景と当たり判定を行って、もし当たっていればその方向成分のベクトルを0にします。
進行方向の少し先で判定するってところがポイントで、もし敵機の座標位置まんまで判定を行うと、当たった時の進行方向に関わらずベクトルがX、Y成分共に0にされてしまうので、壁に当たった瞬間から突き刺さったかのようにまったく動かなくなります。
その部分でひっかかって少し苦労しましたが、なんとか実装完了しました。
あとは、コイツがわらわらと無数に出てくるように敵のデータファイルを書き足します。
- ABOUT
やってやれないことはないっ!たぶん・・・
- カレンダー
04 | 2025/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 最新コメント
[11/09 CALL MY NAME]
[11/09 erin]
[08/18 うずランド]
[07/11 うずランド]
[06/23 うずランド]
- プロフィール
HN:
Call my name
年齢:
50
性別:
男性
誕生日:
1974/05/22
職業:
スロ屋店員
趣味:
いろいろ
自己紹介:
やる気だけはあるつもりです。
はい。
はい。
- ブログ内検索
- カウンター
- アクセス解析