まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
先日公開したVer3.0ですが、やはりバグがいっぱい発生しました^^;
中でも深刻だったのが、戦艦の回転砲台が自機の方向を向いていないのに
レーザーだけは自機の方向に向かって撃ってしまうと言うバグと
ある特定の敵を倒すと出てくるはずの敵が出てこない時がある、というバグ。
とりあえず、Ver3.3のファイルはコチラ↓
Solid State SURVIVOR Ver3.3 (右クリック→対象をファイルに保存で保存して下さい。)
で、色々と調べてみました。
まず回転砲台の方ですが、これは回転砲台の回転速度を一定にするって事を忘れていて
自機に近づけば近づく程、回転砲台が高速に動いてしまいおかしくなっているようでした。
それと以前書いた回転砲台の角度計算で、レーザーを撃っている時の角度と撃ち終わった後の
角度の差が大体145以上と以下でプラスとマイナスを逆転させないといけないと書いていましたが
今日、もう一度調べてみたら180以上と以下の方が正しかったようです(汗)
なので、この2点を修正してみると、上手く動いてくれました。
いや、たぶん上手く動いているはず。上手く動いていると思いたい^^;
それと、特定の敵を倒すと出てくるはずの敵が出てこない時があるバグですが
こちらは、私は今まで自機弾の処理とボムの処理を一つのループ内で別々に管理していたのですが
これが悪かったようで、自機弾が敵に当りながらボムを撃つと2度同じ処理を繰り返してしまっていた
ようで、本来は敵を倒すと1回プラスされるはずの変数が2回プラスされてしまっていて
敵が出てこなくなっていたようです。
なので、この2つに分けていた処理を1つにまとめて処理するように変更したら上手く出てくるように
なりました。いや、たぶん上手く出てくるはず。上手く出てくると思いたい^^;
あと接近攻撃を追加しました。
敵と自機との距離が150ドット以下の時に攻撃すると攻撃力2倍、スコア加算、コンボの倍率加算
を行うようにして、自機弾の消去スプライトが赤く光るようにしてみました。
この敵と自機との距離の計算方法ですが、敵は種類によって大きさが違います。
なので、どうやって計算すれば良いのか?と悩んだのですが
HSPDXFIXにはこれまた便利な命令がありまして、それがes_get命令なのですが
この命令のinfo number25でスプライトの表示Xサイズ、26で表示Yサイズを取得する事が出来ます。
距離を計算する為には敵の中心座標と自機の中心座標がわかれば計算出来るので
es_get sizex,enemy,25
es_get sizey,enemy,26
kyorix=(ex+(sizex/2))-(px+24)
kyoriy=(ey+(sizey/2))-(py+24)
if (abs(kyorix)<150)&(abs(kyoriy)<150) : ~接近攻撃処理
こんな感じで、キャラの大きさの半分を表示座標に足してやればOKでした。
でも作り始めた頃は、接近攻撃を入れるなんて思ってもなかったので、あまり接近攻撃を
積極的に使える場所がないのが悩みどころです^^;
それと、ステージ3ボスの第一形態の時にある羽に自機弾の当り判定を追加しました。
当初、羽に当り判定があるとボスの体力を減らす事が出来ないと考えて羽には自機弾の
当り判定を入れていなかったんですが、それだとイマイチ羽に当ると死ぬって感じがしませんでした。
で、よく考えてみると、羽に自機弾が当った時もボスの体力を減らせばよいんだって事に
気づいて、このように変更してみました。
ついでに、第二形態の攻撃もちょっとだけ変更しています。
ホントに10月31日までに仕上がるのか不安です^^;
中でも深刻だったのが、戦艦の回転砲台が自機の方向を向いていないのに
レーザーだけは自機の方向に向かって撃ってしまうと言うバグと
ある特定の敵を倒すと出てくるはずの敵が出てこない時がある、というバグ。
とりあえず、Ver3.3のファイルはコチラ↓
Solid State SURVIVOR Ver3.3 (右クリック→対象をファイルに保存で保存して下さい。)
で、色々と調べてみました。
まず回転砲台の方ですが、これは回転砲台の回転速度を一定にするって事を忘れていて
自機に近づけば近づく程、回転砲台が高速に動いてしまいおかしくなっているようでした。
それと以前書いた回転砲台の角度計算で、レーザーを撃っている時の角度と撃ち終わった後の
角度の差が大体145以上と以下でプラスとマイナスを逆転させないといけないと書いていましたが
今日、もう一度調べてみたら180以上と以下の方が正しかったようです(汗)
なので、この2点を修正してみると、上手く動いてくれました。
いや、たぶん上手く動いているはず。上手く動いていると思いたい^^;
それと、特定の敵を倒すと出てくるはずの敵が出てこない時があるバグですが
こちらは、私は今まで自機弾の処理とボムの処理を一つのループ内で別々に管理していたのですが
これが悪かったようで、自機弾が敵に当りながらボムを撃つと2度同じ処理を繰り返してしまっていた
ようで、本来は敵を倒すと1回プラスされるはずの変数が2回プラスされてしまっていて
敵が出てこなくなっていたようです。
なので、この2つに分けていた処理を1つにまとめて処理するように変更したら上手く出てくるように
なりました。いや、たぶん上手く出てくるはず。上手く出てくると思いたい^^;
あと接近攻撃を追加しました。
敵と自機との距離が150ドット以下の時に攻撃すると攻撃力2倍、スコア加算、コンボの倍率加算
を行うようにして、自機弾の消去スプライトが赤く光るようにしてみました。
この敵と自機との距離の計算方法ですが、敵は種類によって大きさが違います。
なので、どうやって計算すれば良いのか?と悩んだのですが
HSPDXFIXにはこれまた便利な命令がありまして、それがes_get命令なのですが
この命令のinfo number25でスプライトの表示Xサイズ、26で表示Yサイズを取得する事が出来ます。
距離を計算する為には敵の中心座標と自機の中心座標がわかれば計算出来るので
es_get sizex,enemy,25
es_get sizey,enemy,26
kyorix=(ex+(sizex/2))-(px+24)
kyoriy=(ey+(sizey/2))-(py+24)
if (abs(kyorix)<150)&(abs(kyoriy)<150) : ~接近攻撃処理
こんな感じで、キャラの大きさの半分を表示座標に足してやればOKでした。
でも作り始めた頃は、接近攻撃を入れるなんて思ってもなかったので、あまり接近攻撃を
積極的に使える場所がないのが悩みどころです^^;
それと、ステージ3ボスの第一形態の時にある羽に自機弾の当り判定を追加しました。
当初、羽に当り判定があるとボスの体力を減らす事が出来ないと考えて羽には自機弾の
当り判定を入れていなかったんですが、それだとイマイチ羽に当ると死ぬって感じがしませんでした。
で、よく考えてみると、羽に自機弾が当った時もボスの体力を減らせばよいんだって事に
気づいて、このように変更してみました。
ついでに、第二形態の攻撃もちょっとだけ変更しています。
ホントに10月31日までに仕上がるのか不安です^^;
PR
カレンダー
10 | 2024/11 | 12 |
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 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事