// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象が敵だったら自身を削除 if (obj is Enemy) { Parent?.RemoveChildNode(this); } }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象がプレイヤーだったらBulletのOnCollisionを実行して削除 if (obj is Player) { Parent?.RemoveChildNode(this); } }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象が敵か敵の弾だったら if (obj is Enemy || obj is EnemyBullet) { // 自身を親から削除 Parent.RemoveChildNode(this); } }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象が自機弾だったら if (obj is PlayerBullet) { // 死亡時エフェクトを再生 Parent.AddChildNode(new DeathEffect(Position)); // 自身を削除 Parent.RemoveChildNode(this); } }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突したのが自機弾だったら if (obj is PlayerBullet) { // HPを1減らす HP--; // HPが0になったらEnemyクラスのOnCollisionを呼び出して削除 if (HP == 0) { base.OnCollision(obj); } } }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象が敵か敵の弾だったら if (obj is Enemy || obj is EnemyBullet) { + // 死亡音を読み込む +var deathSound = Sound.LoadStrict("Resources/Explosion.wav", true); + + // 死亡音を再生 +Engine.Sound.Play(deathSound); + // 自身を親から削除 Parent.RemoveChildNode(this); } }
// 衝突時に実行 private void CollideWith(CollidableObject obj) { // nullだったら終了 if (obj == null) { return; } // 衝突対象がSurveyを実行しないオブジェクトだった場合,相手のOnCollisionも実行 if (!obj.doSurvey) { obj.OnCollision(this); } // 自身のOnCollisiionを実行 OnCollision(obj); }
// 衝突時に実行 protected override void OnCollision(CollidableObject obj) { // 衝突対象が自機弾だったら if (obj is PlayerBullet) { // 死亡時エフェクトを再生 Parent.AddChildNode(new DeathEffect(Position)); // 自身を削除 Parent.RemoveChildNode(this); // 死亡時サウンドを読み込み var deathSound = Sound.LoadStrict("Resources/Explosion.wav", true); // 死亡時サウンドを再生 Engine.Sound.Play(deathSound); } }
// 衝突時に実行される内容をオーバーライドして設定できる protected virtual void OnCollision(CollidableObject obj) { }