// 衝突時に実行 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); } }
// 画面外に出た時自身を消去 private void RemoveMyselfIfOutOfWindow() { var halfSize = Texture.Size / 2; if (Position.X < -halfSize.X || Position.X > Engine.WindowSize.X + halfSize.X || Position.Y < -halfSize.Y || Position.Y > Engine.WindowSize.Y + halfSize.Y) { // 自身を削除 Parent?.RemoveChildNode(this); } }
// 衝突時に実行 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); } }
// 衝突時に実行 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 override void OnUpdate() { // 表示されるテクスチャのサイズを取得 var size = new Vector2F(Texture.Size.X / 9, Texture.Size.Y); // 表示されるテクスチャの左上の座標を計算する var pos = new Vector2F(size.X * (count / 2 % 9), size.Y); // 描画範囲を設定 Src = new RectF(pos, size); // カウントを進める count++; // カウントが18以上で自身を削除 if (count >= 18) { Parent.RemoveChildNode(this); } }