5年前ゲームの動作確認をしていたら、プレイヤーの衝突判定でバグを見つけたんですが、どの処理が間違っていてバグが起きているのかわかりません。自分が作っているゲームは敵を数字で1、2と分かりやすく分けています。ゲームプレイ画面に移動して敵1が普通に発生してくるところと、敵1がビームを発射するところまでは問題ありませんでした。衝突判定もここまでは問題ありません。後、プレイヤーが敵1と衝突したら残機が1減って、プレイヤーが敵1のビームと衝突したら残機は同じく1減ります。ここも一応問題ありません。バグ発生は、プレイ中におこりました。存在していない敵2と衝突したみたいになっているんです。プレイヤーはダメージを受けていて、残機も2減ってしまっています。どこがおかしいのかよくわかりません。衝突判定がおかしいのではと思って、衝突処理をもう一度見直しましたが、特になかったです。コード提示しますので訂正お願いします。-4;//右向きに移動}}これ↑が敵2のコードです。何か問題があればお願いします。訂正して書いて頂けるとありがたいです。わかりずらかったら、もう少し詳しく説明します。「本当は何がしたいんだろう?」と思ってしまうわけであります。バグのないプログラムはない。プログラムは思ったとおりには動かない。5年前そこら辺は少し変えただけです。OFF;//敵2が存在しない}それぞれ訂正しました。5年前>バグ発生は、プレイ中におこりました。存在していない敵2と衝突したみたいになっているんです。>しかもプレイヤーはダメージを受けていて、残機も2減ってしまっています。回答有難うございます。自分もCollisionDragonEnemy2One()関数では色々と試しました。敵2と衝突する処理は変わりありませんでした。したら、敵1の発生の実施処理か敵2の発生の実施処理でバグを引き起こすようなプログラムを書いてしまっているかもしれません。バグの修正場所が分からなくなったらまた返事を返します。今後ともよろしくお願いします。「敵2と衝突したことになっている」ってのは推測ではなく本当です。実際に自分も敵2と衝突しているところを色々と変えたりしましたが、やはり、結果は変わりませんでした。敵2のコードでどこがバグなのか確認します。5年前コードを見るとgEnemy2のフラグがONになっているのに描画されていないという気がします。gEnemy2.typeは何の意味があるんですか?TYPE2の時しか描画しないようになっていますがgEnemy3にした方がいいのではないですか?敵2の表示用の関数にi以外の引数をつけている理由がわかりません。個人的な感想ですがコメントの「~~の実施」は「~~の処理」の方がいいと思います。「~~の実施を行う」は「~~を行う」で十分でしょう。「~~の実施」は全ての敵2の処理と1体の敵の処理を区別するためみたいですね。それならば、敵2全てに関連する処理は「全ての敵2の~~」、i番目の敵2に関連する処理は「i番目の敵2の~~」と表現してはどうでしょうか。回答有難うございます。typeは敵を区別するために作った構造体です。フラグはちゃんとONになっていて、描画処理もできているのですが・・。そもそも、敵2は敵1を何体か倒してスコアがある程度増えたら発生させるようにしています。それまで、敵2は発生しない処理となっています。今回のバグは描画されていない敵2が発生してしまっている状態です。直すべき点はだいたいわかりますが、それでも何故かうまくいかないです。1.「敵2はスコアがある程度増えたら発生させる」2.「敵2が発生したら敵1は発生しない」たったこれだけの事なんですよ。自分のプログラムミスもあるかと思うので。出来たらバグ解決ということで。5年前>gEnemy2.typeは敵を区別するために作った「敵2のタイプを区別するために作った」という意味でなければ「敵1をgEnemy1、敵2をgEnemy2のように分類することでわかりやすくする」というのがあまり役に立ってなさそうです。投稿されたコードではスコアに関係なく敵2が発生し、スコアがある程度以上ならtypeがTYPE2の敵2が発生するというように読めるのですが。敵1の処理が載せられていないのでわかりません。敵1が無限に発生する状態から手を加えていないなら敵2が発生しようとしまいと敵1は発生すると思います。5年前>gEnemy2.type今のところ、この変数に大した意味はなさそうなので敵2の描画処理でTYPE2かどうかの判定は要らないでしょう。敵2を発生させるべきならば敵2の発生をするようにしてはどうでしょうか。敵2の発生処理でスコアがある値以下なら発生させないというように書き直しても解決しそうですが今後敵3、敵4、...と追加するたびにスコアの判定をそれぞれの発生処理に書かなければならなく、管理が面倒になりそうです。回答有難うございます。スコアによって敵を発生させる処理は出来ていますが、バグは直りませんね。それと、敵を数字で表しているのはもう一つ理由がありまして、敵1と敵2の画像サイズをそれぞれ変えているのでgEnemyで共通させる事は出来ないんです。サイズがどちらも同じならば共通させますよ。画像サイズを合わせようとしましたが、全然合わなかったので区別することにしただけです。>敵1を発生させるべきならば敵1の発生>敵2を発生させるべきならば敵2の発生どちらも書き込んであります。それぞれの敵発生は関係ないので衝突判定が問題だと思っています。衝突判定のところでプレイヤーと敵2のビームが衝突する処理を書いていたらバグが発生しました。今、スコアの部分を書き直したら解決しました。教えていただき有難うございました。衝突判定処理は関係ありませんでした。敵1と敵2それぞれの発生処理のところでスコアによってどのタイプの敵を発生させるのか、そこが問題でした。Tatuさんの言った通りに>敵1の発生処理でスコアがある値以上なら発生させない>敵2の発生処理でスコアがある値以下なら発生させないこの処理をそれぞれの処理に書き直したらバグ直りました。自分のちょっとした凡ミスですね。これからは気を付けてプログラミングに取り組みます。ミクプラは自由にリンクできます。