当たり判定後自機死亡処理 [四聖龍神録2公式Twitter]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

当たり判定後自機死亡処理 [四聖龍神録2公式Twitter]

投稿記事 by Dixq (管理人) » 9年前

今日はプレイヤーと敵との当たり判定後の死亡処理実装方法です。

前回の日記 (当たり判定の計算方法)
http://dixq.net/forum/blog.php?u=53&b=5959

で当たり判定が計算できました。
当たり判定を計算できた人は
「あたった!・・・で?」
となったかもしれません。
値を遠くから取得し、計算できることは分かりましたが、
ではどうやって当たったことを遠いクラスのインスタンスに通知するのでしょう?

これも前回と全く同じ造りで実現できます。
無題.png
無題.png (19.7 KiB) 閲覧数: 574 回
今回は死んだことが通知出来るインターフェイス「Killable」を定義します。
Killableは死んだことを通知出来る窓口としてDie()関数を持っています。
Playerに実装された関数Dieを前回と同じ方法でEnemyがコール出来るようにすれば
Enemy内で当たり判定で計算した時、あたったら、「Playerさん、あたったよ!」と伝えることができます。
こんな感じですね。

CODE:

void Enemy::updateHit(){
    Pos pos = mPlayerInfoGettable->GetPosition();
    float range = mPlayerInfoGettable->GetRange();
    if( isHit(pos, range) ){ //posとrangeで敵との当たり判定計算
        mPlayerKillable->Die();
    }
}

ただ今回はPlayerにもBossにもEnemyにも使えるようにKillableの窓口はDie()だけにしましたが、
四聖龍神録2の場合Playerだけに「喰らいボム」がありますので、
Playerは接触しても、すぐには死なず一瞬だけ無敵状態でボム受付時間に入ります。
0.X秒喰らいボム受付中にボムが入力されなかったら本当に死にます。
なので当たり判定の接触通知はDie()ではなくHit()にしています。
最後に編集したユーザー Dixq (管理人) on 2016年2月24日(水) 18:32 [ 編集 1 回目 ]

コメントはまだありません。