回転砲台の先の実装を少しずつ進めています。
回転砲台の時に作業の流れを順を追って書きましたが、基本的には他の敵機も同じような感じで実装してゆきます。
1画面分の背景を書き足しては、その範囲の敵をスケジュールに書き込むわけです。
新しいタイプの敵の場合は、必要に応じて絵を描いたり、動きの法則をプログラミング。
で、一区切りついたところで、テストプレイしながら動きや表示位置を調整してゆきます。
背景の当たり判定も追加したブロック全てに当たってみて、ちゃんと機能しているか確かめます。
このチェックと調整の作業が一番時間がかかったり。

こんな感じで書き足した背景にあわせて、同時に当たり判定の座標が入ったテキストファイルも更新してゆきます。
暗算が苦手なので、作業中、計算機は起動しっぱなしのことが多いですな(笑)

既に登場済みの敵と同じキャラ、同じ動きの場合は、敵のスケジュールテキストを更新して調整するだけで済むので、少し楽です。
回転砲台の時に作業の流れを順を追って書きましたが、基本的には他の敵機も同じような感じで実装してゆきます。
1画面分の背景を書き足しては、その範囲の敵をスケジュールに書き込むわけです。
新しいタイプの敵の場合は、必要に応じて絵を描いたり、動きの法則をプログラミング。
で、一区切りついたところで、テストプレイしながら動きや表示位置を調整してゆきます。
背景の当たり判定も追加したブロック全てに当たってみて、ちゃんと機能しているか確かめます。
このチェックと調整の作業が一番時間がかかったり。
こんな感じで書き足した背景にあわせて、同時に当たり判定の座標が入ったテキストファイルも更新してゆきます。
暗算が苦手なので、作業中、計算機は起動しっぱなしのことが多いですな(笑)
既に登場済みの敵と同じキャラ、同じ動きの場合は、敵のスケジュールテキストを更新して調整するだけで済むので、少し楽です。
あらかた調整できたので、実行ファイルをアップしときます。
回転砲台実装にあわせてウォーリーの動きも若干調整したので、その辺で前のバージョンとは難易度が変ってきています。
僕自身がたいした腕じゃないんでユルユルだとは思いますが・・・。
いつも通りZIPなんで、解凍してなかのEXEファイルを実行して遊んでください。
ソーステキストも同梱です。
なんかフレームレートが安定しない時がありますが、今は気にしないでおきます(キッパリ)
操作法なんかは#30の記事を参照してください。
っていうか、テキストファイルにして同梱しとけば良いのか!
次回のアップの時は考えます。
http://multip.net/view/qmAYBrRA7o
現状どうなんすかね。
難しいですか?
簡単すぎますか?
その辺をコメントもらえると嬉しかったりします。
回転砲台実装 ~その7~
回転砲台実装最後の記事です。
最後に破壊後も回転砲台の残骸が残る処理と、弾を撃ってくる処理を加えようと思います。
まず、残骸を残しますか。
当然ですが残骸砲台のグラフィックデータが必要ですので、絵を描きました。
で、爆発アニメーションを描画する部分に手を加えます。
爆発アニメが終了すると敵の使用中(used)フラグを降ろして、プログラム上からその敵の存在を消す処理を行っています。
ここに条件分岐を付けて、敵が回転砲台だった場合は破壊不可能な残骸として再初期化するように書き加えます。
そして画面描画関数に新しく増えた残骸のキャラクター番号に対応した表示を行う処理を加えればOKです。

ほい、破壊後も残骸が残るようになりますた。
次に弾を撃ってくるようにしましょう。
敵弾発射関数をいじります。
自機の背景上のX座標(BGx)から円の内側に入っているか判断して、入っているなら一定確率で弾を発射する関数へとばします。
さて、これで回転砲台に必要な要素は全て実装できたんじゃないかと思います。
あとはテストプレイをしながら細かい数値を調整したり、行き当たりばったりで書いたコードを整理、最適化したりしてゆきます。
最初の難関は突破です。
ぷよのアルゴリズムの方が難易度は高かったと思います。
あくまで印象ですが。
僕がレベルアップしているだけか(爆)
次の難関は敵の発射する誘導ミサイル、そしてボスです。
フォースやパワーアップアイテムの実装もやるとなったら大変そうですね。
まあ、こつこつと。
回転砲台実装最後の記事です。
最後に破壊後も回転砲台の残骸が残る処理と、弾を撃ってくる処理を加えようと思います。
まず、残骸を残しますか。
当然ですが残骸砲台のグラフィックデータが必要ですので、絵を描きました。
で、爆発アニメーションを描画する部分に手を加えます。
爆発アニメが終了すると敵の使用中(used)フラグを降ろして、プログラム上からその敵の存在を消す処理を行っています。
ここに条件分岐を付けて、敵が回転砲台だった場合は破壊不可能な残骸として再初期化するように書き加えます。
そして画面描画関数に新しく増えた残骸のキャラクター番号に対応した表示を行う処理を加えればOKです。
ほい、破壊後も残骸が残るようになりますた。
次に弾を撃ってくるようにしましょう。
敵弾発射関数をいじります。
自機の背景上のX座標(BGx)から円の内側に入っているか判断して、入っているなら一定確率で弾を発射する関数へとばします。
さて、これで回転砲台に必要な要素は全て実装できたんじゃないかと思います。
あとはテストプレイをしながら細かい数値を調整したり、行き当たりばったりで書いたコードを整理、最適化したりしてゆきます。
最初の難関は突破です。
ぷよのアルゴリズムの方が難易度は高かったと思います。
あくまで印象ですが。
僕がレベルアップしているだけか(爆)
次の難関は敵の発射する誘導ミサイル、そしてボスです。
フォースやパワーアップアイテムの実装もやるとなったら大変そうですね。
まあ、こつこつと。
回転砲台実装 ~その6~
小さい事ですが回転砲台の当たり判定を修正しました。
円の外からの攻撃を無効にするために、回転砲台の外側に破壊不可能な堅さの見えない敵を置く処理を行っていました。
この方法だと、
①無駄な当たり判定が増えてしまう
②見た目上よりも多くの敵機データを処理しなければならない
③波動砲があきらかに見えない何かに当たって消えてしまう
等のデメリットがあります。
なので何とか攻撃方向から処理をする事が出来ないかと考えていました。
で、考えていて気付きました。
回転砲台はそれぞれが現在角度をデータで持ってるじゃん!と(笑)。
自分のボケに、自分で突っ込んだ気分です。
気付けば簡単。
極めて軽い処理で実現できます。
角度が浅いとこも含めて、とりあえず70度から290度までは当たった波動砲を無効化するようにするだけです。(角度はテストプレイで今後微調整しますが・・・)
実際上手くいきました。
今のところ実装するか不明ですが、もし後方攻撃を実装したとしても、自機との座標を比較して無効化する角度を変えてやれば対応できるはずです。
これで、無駄に見えない敵を処理する必要はなくなりました。
今回ばかりは言わせてください。
俺、天才。
よくやった!
(最初から気付ければもっと良かったね。)
小さい事ですが回転砲台の当たり判定を修正しました。
円の外からの攻撃を無効にするために、回転砲台の外側に破壊不可能な堅さの見えない敵を置く処理を行っていました。
この方法だと、
①無駄な当たり判定が増えてしまう
②見た目上よりも多くの敵機データを処理しなければならない
③波動砲があきらかに見えない何かに当たって消えてしまう
等のデメリットがあります。
なので何とか攻撃方向から処理をする事が出来ないかと考えていました。
で、考えていて気付きました。
回転砲台はそれぞれが現在角度をデータで持ってるじゃん!と(笑)。
自分のボケに、自分で突っ込んだ気分です。
気付けば簡単。
極めて軽い処理で実現できます。
角度が浅いとこも含めて、とりあえず70度から290度までは当たった波動砲を無効化するようにするだけです。(角度はテストプレイで今後微調整しますが・・・)
実際上手くいきました。
今のところ実装するか不明ですが、もし後方攻撃を実装したとしても、自機との座標を比較して無効化する角度を変えてやれば対応できるはずです。
これで、無駄に見えない敵を処理する必要はなくなりました。
今回ばかりは言わせてください。
俺、天才。
よくやった!
(最初から気付ければもっと良かったね。)
- 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
職業:
スロ屋店員
趣味:
いろいろ
自己紹介:
やる気だけはあるつもりです。
はい。
はい。
- ブログ内検索
- カウンター
- アクセス解析