忍者ブログ
Admin*Write*Comment
35歳からのC言語ゲームプログラミング
[105]  [104]  [103]  [102]  [101]  [100]  [99]  [98]  [97]  [96]  [95
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

回転砲台実装 ~その2~

では、回転運動する砲台をプログラムしてみます。
まず、この敵に関しては今までの敵のようにスケジュールに書き込んで出現させる形はとりません。
なぜかというと、共通の中心点によって位置の決まる複数の砲台を一発で出現させるからです。
ステージに1度限りのこの砲台のためにスケジュールデータに新しいデータ枠を追加するのは、読み込みや敵データの初期化など沢山の関数を書き換えなければならないため効率が悪いです。
出現するタイミングになったらメインループから呼び出して全砲台をいっきに初期化する(出現させる)方法を選びました。
特別イベント的な扱いです。
メインループに特定のフレーム数に到達したら、回転砲台初期化関数を呼び出す処理を加えました。

次に全砲台共通で使う、回転運動の中心点の変数を構造体にして宣言します。
中身は、中心座標 X、Yと、現在回転砲台は有効かどうかを表すusedフラグです。
回転砲台が現れたらフラグは有効(TRUE)になり、その間中心座標はスクロールに合わせて左へ移動します。
画面に砲台が入らない位置まで移動したら無効(FALSE)になります。

af60167b.PNG








次に、回転砲台を初期化する(出現させる)関数を書きます。
とりあえず一機のみ表示してみる形ですが、今後少しずつ角度をずらして複数の砲台をここでまとめて出現させる事になります。
今はとりあえず破壊不可能にするため、堅さ(def)を大きめにとっています。
シータスピードを1にしているので、1フレームに1度ずつ回転することになります。

69c430d6.PNG

















さあ、次はいよいよ円運動の実装です。
と、おおげさに言ってみましたが円周の座標を求める方法を理解していれば、超シンプルな関数で実装できます。
円運動のパターン番号は10なので、変数MovePat が10の敵機は1フレームに1回この関数に飛ばされます。
最初、角度をプラスしていったら、思っていたのと逆に回ってビビッタのは内緒です(笑)
一般的な数学の座標と画面の座標はY方向に反転しているので、たまにこのような現象に驚かされます。

78d56520.PNG





この記事を書いていて気付きましたが、角度が0になったら360にする処理は無駄ですな(汗)
まあ、細かい事は気にせず・・・。
円運動を実現する関数はたったこれだけの処理で実装できます。

6056e088.PNG












ここにあった砲台が回転して・・・





2efe6952.PNG










ここにきます。







動画じゃないとわかりずらいですが、ちゃんと回転しています。
あとは動きを見ながら中心の位置や半径を少しずつ調整して、ここにアップしたようなコードになるわけです。

さあ、次は砲台が常に円の中心方向を向くようにしましょうか!

うわー!今、思い出した!
コアの存在を!
絵、描いてねえし・・・orz

PR
この記事にコメントする
お名前
タイトル
メール
URL
コメント
文字色
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret
この記事へのトラックバック
この記事にトラックバックする:
  • 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
職業:
スロ屋店員
趣味:
いろいろ
自己紹介:
やる気だけはあるつもりです。
はい。
  • バーコード
  • ブログ内検索
  • カウンター
  • アクセス解析
Copyright © 35歳からのC言語ゲームプログラミング All Rights Reserved.*Powered by NinjaBlog
Graphics By R-C free web graphics*material by 工房たま素材館*Template by Kaie
忍者ブログ [PR]