忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

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

先日作製したホーミングレーザーをロックオンで発射出来るようにして敵の数も増やしてみました。
こんな感じ↓

とりあえず丸い緑の範囲に敵が入るとロックオンされてレーザーが撃てるようになっています。

プログラムはコチラ↓
https://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1263925101
ですが!このプログラム、グチャグチャな上にメイン関数に全ての処理を書いてしまっているので
あまり参考にしない方が良いかもしれません(汗)

今回、ホーミングの範囲を円形にしたかったので、敵との当たり判定に円の判定を使ってみました。
当たり判定の作製にあたっては、C言語何でも質問サイトさんのコチラのページを参考に
させて頂きました。
考え方は上記のページに解りやすく書いてあるので要点だけ。
enemy[0]とenemy[1]の判定をするとします。
で、
enemy[0].range=100;
enemy[1].range=180;
このように、それぞれの当たり判定の半径を設定します。

x=enemy[0].x-enemy[1].x;
y=enemy[0].y-enemy[1].y;
x軸とy軸の計算をして・・・

if(x*x+y*y<range*range)
x*x+y*yがrange*range以下なら当たってると判定出来るんです。

凄くシンプルで良い判定方法やな~と思ったのですが、この判定方法だと長方形の敵なんかには
使えないんですよね・・・
でも、判定する円の数を増やしたりすれば対処出来そうな気もするので、その辺は今後の課題って
事で、とりあえずホーミングレーザーを蒼穹紅蓮隊のようにボタンを押している間はロックオンして
ボタンを放すと発射するように変更してみたいと思います。
後、グチャグチャなプログラムを綺麗にして関数化もしたいです^^;

ベジェ曲線を使ってホーミングレーザーを作ってみる その10へ
PR
先日作製したホーミングレーザープログラムを元に自機のレーザー本数を最大10本に
増やしてみました。

こんな感じ↓

レーザー消滅のエフェクトも追加してみた。
エフェクトの作り方については、この辺この辺で過去に書いてます。
その画像をDrawRotaGraph関数で引伸したりして表示させてみました。

プログラムはコチラ↓
https://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1263710249

プログラム的には配列変数使って数を増やしただけなので、コレといって新しい事は何も
してなかったりします(汗)

とりあえずコレでレーザー自体の動きは良いかなぁと思っているので、次は複数の敵をロックオン
出来るようにしてみたいなぁと思っているのですが、どうやって実装するか悩み中です^^;

ベジェ曲線を使ってホーミングレーザーを作ってみる その9へ
先日から作っていたホーミングレーザープログラムが何とか形にはなってきました。
s-WS000771.jpg
レーザーの軌跡表示がおかしかったのは、ただ単なる計算間違い。
ちゃんと計算するようにしたら、上手く表示してくれました。でも、こう言う間違いになかなか気づけ
ないんですよね~^^;

とりあえず、プログラムはコチラ↓
https://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1263581413
今回は、レーザー、敵共に一体しか出ません。
でも敵を動かしても、ちゃんと当たった時にレーザーの軌跡は消えずに表示されます。

ポイントは、レーザーの先頭と軌跡を別々に処理する事で、今まではココを同じところで処理していた
ので、敵と当たってレーザーの存在が無になった時におかしな事になっていたんです。
先頭と軌跡を別々に考える事によって、先頭だけ存在を無にして軌跡だけ表示が可能になったので
上手く表示出来るようになりました^^

ただ、現状ではレーザーの軌跡を消す処理の所で、軌跡の最後の部分が先頭の当たった部分と
重なった時に軌跡の存在を消す処理をしているので、先頭と尾っぽで2回の当たり判定を
行っているんですよね・・・
当たり判定は重い処理だと思うので、なるべく違う方法にしたかったんですが、アレコレやっても
上手く動かなくて、仕方なく2回当たり判定を行う処理にしています。
まぁ、そのうち良い方法を思いつくだろうと言う事で(汗)

とりあえずコレを広げる感じで、次はレーザーの本数を増やそうかと思っています^^

ベジェ曲線を使ってホーミングレーザーを作ってみる その8へ
久々にプログラムのエントリです^^;
前回のエントリが11/2なので2ヶ月以上放置してたんですね(汗
というのも当たり判定が上手く出来なくて色々やっているうちに嫌になって放置してたんですが
何が上手く出来なかったかと言うと、レーザーの尾っぽの処理だったんです。

当たり判定はレーザーの先頭で行うのですが、当たった瞬間にレーザーの存在を消さないと
おかしな事になるので消す処理をすると、尾っぽも消えてしまうんですよね。
で、消さないように処理しようとすると別のところがおかしくなって・・・って感じで困ってました。

なので、もう一度最初から作り直してみようと思って、とりあえず配列変数を使わずに
敵と自機とレーザーを一体づつで考えて見る事にしました。
で、処理自体は上手く出来たのですが、レーザーの表示だけが上手く出来てません^^;
s-WS000769.jpg
こんな感じで、レーザーの先端が自機とくっついてしまうんですよねぇ。
レーザー表示の計算が上手くいってないと思うのですが、アレコレやっても治らず・・・

とりあえず今日は眠いので、これは今後の課題って事で。
レーザー処理の方法は、また上手く出来たら書こうかと思っています^^

ベジェ曲線を使ってホーミングレーザーを作ってみる その7へ

ダライアスバーストのミッションモードをコンプリートしました^^
98ef7ce7.jpeg
*FINAL MISSIONはこの画面では星は付きません。

苦労していた5-7と7-2ですが、7-2はダークヘリオスとグレートシングがポイントだと思うんですが
ダークヘリオスは最初に胴体に張り付いて、首から下の2個のパーツをミサイルを当てながら
壊すと、ザコ敵を吐かなくなるので、かなり簡単になる事に気づき殆どダメージを受けずに
倒すことが出来るようになったので、最後のグレートシングで被弾してもクリア出来ました。

5-7は3つ目のステージが難しいのですが、敵の出現パターンを覚えて設置バーストを上手く
使うと、意外とあっさりクリア出来ましたが、もう二度とプレイしたくないミッションです^^;

初めてミッションモードをプレイした時はALLなんて絶対むりだ!と思っていたのですが
プレイする度に色々と攻略を考えていって遊んでいるうちに、自分の腕も上がっていき
最終的にはクリア出来るように作ってあるレベルデザイン?が上手いなぁと。

とりあえず、まだノーコンティニューでクリアしていないルートがあるので、順番にクリアして
行こうかと思っています^^

Twitter
カレンダー
06 2026/07 08
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
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]