- ベストアンサー
【STG】耐久力のある敵を作る方法
- 【STG】耐久力のある敵を作る方法について教えてください。
- 現在、敵と敵2のヒットが一緒になってしまい、同時に消えてしまいます。敵と敵2を一緒にしないとソースが大きくなるため、どのように解決すれば良いでしょうか?
- 敵を一緒にまとめたソースで解決する方法以外にも、敵のまとめ方を変えて改善する方法や当たった時の処理を変える方法も考えられます。より良い方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どんな手段使ったところで、各機毎にダメージ管理する必要があるでしょう。 今、HITを使っているところを(たぶん、これで管理しているように思います)、DK_eneh(DTK)みたいにして、他のDK_ene?と一緒に管理すればできるはずです。 ソースもそんなに大きくならないと思うのですが。
その他の回答 (1)
- tiutiu2
- ベストアンサー率66% (2/3)
;***************敵VS弾************************ *敵VS弾 repeat TMMAX ;100 mytm_cnt = cnt tmx(0) = SX.mytm_cnt : tmy(0) = SY.mytm_cnt gosub *準備 loop *準備 ;***************妖精あたり判定**************************** DPK = 0 repeat DKMAX ;妖精 if DK_ene(DPK) = 1 and SHOT.mytm_cnt { if (DK_enex(DPK) < tmx(0)+9) and (DK_enex(DPK) > tmx(0)-58) and (DK_eney(DPK) < tmy(0)+8) and (DK_eney(DPK) > tmy(0)-45){ if DK_ene(0) : HIT += 1 ;敵ヒットカウント if DK_ene(1) : HIT2 += 1 // if DK_ene(DPK) == 0 : HIT += 1 ;敵ヒットカウント // if DK_ene(DPK) == 1 : HIT2 += 1 SHOT.mytm_cnt = 0 ;自機弾フラグ SHOT2.mytm_cnt2 = 0 } } DPK++ loop return ---------------------- ↑いつもどおり別アカで補足しときます。
お礼
やっとできました。 単純に if DPK == 0 : DKHIT += 1 if DPK == 1 : DKHIT2 += 1 とやれば別々に反応しました。 難しく考えすぎたようです・・・w どうもありがとうございました。〆ます
補足
言われてみればどんな方法だろうがダメージ管理は必要ですな。 今はHITで管理してますね。 左の敵を攻撃すると、左の敵と右の敵のHITカウントが同時に動いてしまいます。 右の敵を攻撃した場合も、左の敵と右の敵のHITカウントが同時に動いてしまいます。 でなんでこういうことが起きているかと言うと if DK_ene(0) : HIT += 1 ;敵ヒットカウント if DK_ene(1) : HIT2 += 1 の両方条件に当てはまってしまうがために、両方のカウントが動いてしまうのが原因です。 んでお答えしていただいたアドバイスを参考にしソースを変更してみましたがどうもうまくいかないです(´・ω・`) ん~やりかたが悪いのかな~・・・参考になるソースとかあると助かるのですが・・・ お答えいただきありがとうございます。引き続きアドバイス等ありましたらお願いいたします。