合計 昨日 今日

アバター
Dixq (管理人)
管理人
 
記事: 1373
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (537)
日記
- 3月 2017
DXライブラリAndroid版を使ったベンチマーク公開 (0)
   2017年3月29日(水) 00:18
本HPに新しいコンテンツ追加 (2)
   2017年3月28日(火) 23:36
モベリオアプリ開発で出来ることを増やすテクニック (2)
   2017年3月27日(月) 22:24
スマホに消せない広告が入り込んだ・・ (4)
   2017年3月20日(月) 19:14
【祝】4000万アクセス (2)
   2017年3月20日(月) 18:02
ARナビ作ってみた [Android/Moverio]ストア公開中 (0)
   2017年3月19日(日) 14:14
DXライブラリが神アプデ!Android対応に!! (2)
   2017年3月09日(木) 23:57
スマホで広告が出ないようにしました (6)
   2017年3月09日(木) 00:08
念願のプレステ4! (3)
   2017年3月04日(土) 23:33
分かる人いる? (4)
   2017年3月03日(金) 20:45
あたったあああ!!! (7)
   2017年3月01日(水) 21:39

+ 2月 2017
+ 1月 2017
+ 12月 2016
+ 11月 2016
+ 10月 2016
+ 9月 2016
+ 8月 2016
+ 7月 2016
+ 6月 2016
+ 5月 2016
+ 4月 2016
+ 3月 2016
+ 2月 2016
+ 1月 2016
+ 12月 2015
+ 11月 2015
+ 10月 2015
+ 9月 2015
+ 8月 2015
+ 7月 2015
+ 6月 2015
+ 5月 2015
+ 4月 2015
+ 3月 2015
+ 2月 2015
+ 1月 2015
+ 12月 2014
+ 11月 2014
+ 10月 2014
+ 9月 2014
+ 8月 2014
+ 7月 2014
+ 6月 2014
+ 5月 2014
+ 4月 2014
+ 3月 2014
+ 2月 2014
+ 1月 2014
+ 12月 2013
+ 11月 2013
+ 10月 2013
+ 9月 2013
+ 8月 2013
+ 7月 2013
+ 6月 2013
+ 5月 2013
+ 4月 2013
+ 3月 2013
+ 2月 2013
+ 1月 2013
+ 12月 2012
+ 11月 2012
+ 10月 2012
+ 9月 2012
+ 8月 2012
+ 7月 2012
+ 6月 2012
+ 5月 2012
+ 4月 2012
+ 3月 2012
+ 2月 2012
+ 1月 2012
+ 12月 2011
+ 11月 2011
+ 10月 2011
+ 9月 2011
+ 8月 2011
+ 7月 2011
+ 6月 2011
+ 5月 2011
+ 4月 2011
+ 3月 2011
+ 2月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
フォロー
カテゴリー
日常
1 記事

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

パーマリンクby Dixq (管理人) on 2016年2月23日(火) 22:58

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

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

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

これも前回と全く同じ造りで実現できます。
.png
.png (19.7 KB) 表示数: 528 回

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

コード[C++]: 全て選択
1
2
3
4
5
6
7
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 (管理人) [ 2016年2月24日(水) 18:32 ], 累計 1 回

コメント数: 0 閲覧数: 6094

オンラインデータ

登録ユーザー: なし