public override void OnCollide(CollidableObject obj) { base.OnCollide(obj); //asd.Engine.AddObject2D(new BreakObjectEffect(Position)); //Singleton.Getsingleton(); Singleton.singleton.score += 10; //deathseID = asd.Engine.Sound.Play(deathSound); //Dispose(); if (randomNumber >= 1 & randomNumber <= 4) { asd.Engine.AddObject2D(new Item.PenetrateShotItem(Position)); } else if (randomNumber >= 11 & randomNumber <= 13) { asd.Engine.AddObject2D(new Item.ThereeShotItem(Position)); } else if (randomNumber >= 21 & randomNumber <= 24) { asd.Engine.AddObject2D(new Item.TwoShotItem(Position)); } else if (randomNumber >= 31 & randomNumber <= 33) { asd.Engine.AddObject2D(new Item.TriShotItem(Position)); } }
protected void CollideWith(CollidableObject obj) { if (obj == null) { return; } if (obj is Bullet) { CollidableObject bullet = obj; if (IsCollide(bullet)) { OnCollide(bullet); bullet.OnCollide(this); } } if (obj is PenetrateBullet) { CollidableObject bullet = obj; if (IsCollide(bullet)) { OnCollide(bullet); //bullet.OnCollide(this); } } }
public override void OnCollide(CollidableObject obj) { if (HP > 0) { HP -= 1; } else { base.OnCollide(obj); //asd.Engine.AddObject2D(new BreakObjectEffect2(Position)); Singleton.singleton.score += 30; if (randomNumber >= 1 & randomNumber <= 7) { asd.Engine.AddObject2D(new Item.PenetrateShotItem(Position)); } else if (randomNumber >= 11 & randomNumber <= 16) { asd.Engine.AddObject2D(new Item.ThereeShotItem(Position)); } else if (randomNumber >= 31 & randomNumber <= 36) { asd.Engine.AddObject2D(new Item.TriShotItem(Position)); } } }
// 衝突時の動作 public override void OnCollide(CollidableObject obj) { // このインスタンスと同じ位置にエフェクトインスタンスを生成して、エンジンに追加する。 asd.Engine.AddObject2D(new BreakObjectEffect(Position)); asd.Engine.Sound.Play(deathSound); // ゲームからオブジェクトを消滅させる Dispose(); }
public override void OnCollide(CollidableObject obj) { base.OnCollide(obj); //asd.Engine.AddObject2D(new BreakObjectEffect(Position)); //Singleton.Getsingleton(); Singleton.singleton.score += 10; //deathseID = asd.Engine.Sound.Play(deathSound); //Dispose(); }
public override void OnCollide(CollidableObject obj) { asd.Engine.AddObject2D(new BreakObjectEffect(Position)); Singleton.Getsingleton(); //Singleton.singleton.score += 10; deathseID = asd.Engine.Sound.Play(deathSound); randomNumber = rnd.Next(1, 700); Dispose(); }
// 衝突時の動作(子クラスでoverrideが可能) public override void OnCollide(CollidableObject obj) { // このインスタンスと同じ位置にエフェクトインスタンスを生成して、エンジンに追加する。 Layer.AddObject(new BreakObjectEffect(Position)); asd.Engine.Sound.Play(deathSound); // ゲームからオブジェクトを消滅させる Dispose(); // スコアを加算 var scene = (GameScene)Layer.Scene; scene.Score += 1; }
private void CollideWith(CollidableObject obj) { if (obj == null || !obj.IsAlive) { return; } if (obj is Enemy) { if (IsCollide(obj)) { obj.OnCollide(this); } } }
public override void OnCollide(CollidableObject obj) { base.OnCollide(obj); Singleton.singleton.score += 20; if (randomNumber >= 61 & randomNumber <= 81) { asd.Engine.AddObject2D(new Item.SpeedThereeShotItem(Position)); } else if (randomNumber >= 71 & randomNumber <= 91) { asd.Engine.AddObject2D(new Item.PenetrateTriShotItem(Position)); } }
protected void CollideWith(CollidableObject obj) { if (obj == null) { return; } if (obj is Enemy) { CollidableObject enemyBullet = obj; if (IsCollide(enemyBullet)) { OnCollide(enemyBullet); enemyBullet.OnCollide(this); } } }
// 自機の弾との当たり判定をコントロールするメソッド protected void CollideWith(CollidableObject obj) { // 当たり判定の相手が見つかってない場合はメソッドを終了 if (obj == null) { return; } // obj が Bulletである場合にのみelse内を動作させる if (obj is Bullet) { // obj が bullet であることを明示 CollidableObject bullet = obj; // bulletと衝突した場合には、衝突時処理を行う if (IsCollide(bullet)) { OnCollide(bullet); bullet.OnCollide(this); } } }
// 指定したオブジェクトと当たり判定をするメソッド private void CollideWith(CollidableObject obj) { // オブジェクトがnullか、消滅していたら当たり判定をしない if (obj == null || !obj.IsAlive) { return; } if (obj is Enemy) // オブジェクトがEnemyだった場合 { if (IsCollide(obj)) { obj.OnCollide(this); } } else if (obj is EnemyBullet) // オブジェクトがEnemyBulletだった場合 { if (IsCollide(obj)) { obj.OnCollide(this); } } }
public override void OnCollide(CollidableObject obj) { if (HP > 0) { HP -= 1; } else { base.OnCollide(obj); //asd.Engine.AddObject2D(new BreakObjectEffect2(Position)); Singleton.singleton.score += 50; if (randomNumber >= 41 & randomNumber <= 45) { asd.Engine.AddObject2D(new Item.BombItem(Position)); } else if (randomNumber >= 51 & randomNumber <= 91) { asd.Engine.AddObject2D(new Item.BarrierItem(Position)); } } }
// 衝突時の処理を行うメソッドを実装する。 public virtual void OnCollide(CollidableObject obj) { }
public override void OnCollide(CollidableObject obj) { Layer.AddObject(new BreakObjectEffect(Position)); Dispose(); }
public override void OnCollide(CollidableObject obj) { Dispose(); }
protected bool IsCollide(CollidableObject o) { var distance = (Position - o.Position).SquaredLength; return((radius + o.radius) * (radius + o.radius) > distance); }
public override void OnCollide(CollidableObject obj) { // どんなプレイヤーの弾でも当たればHPが50減る HP -= 50; }
// 衝突時の動作 public override void OnCollide(CollidableObject obj) { // ゲームからオブジェクトを消滅させる Dispose(); }
// 引数に指定したCollidableObjectと自分が衝突しているか、を返す。 public bool IsCollide(CollidableObject o) { // 二点間の距離 が お互いの半径の和 より小さい場合にはtrueを返す。 return((o.Position - Position).Length < Radius + o.Radius); }