public override void CollideWithObject(CollidableObject collidableObject) { if (collidableObject == null) { return; } if (collidableObject is Enemy) { CollidableObject enemy = collidableObject;//衝突したオブジェクトがEnemyである事を明示する if (IsCollide(enemy)) { OnCollided(enemy); } } if (collidableObject is EnemyBullet) { CollidableObject enemyBullet = collidableObject; if (IsCollide(enemyBullet)) { OnCollided(enemyBullet); enemyBullet.OnCollided(this); } } if (collidableObject is FreezeBullet) { CollidableObject freezeBullet = collidableObject; if (IsCollide(freezeBullet)) { OnCollided(freezeBullet); freezeBullet.OnCollided(this); } } }
public override void OnCollided(CollidableObject collidableObject) { if (collidableObject is FreezeBullet) { base.OnCollided(collidableObject); if (playersHealth == PlayersHealth.Nomal) { this.playersHealth = PlayersHealth.Frozen; Texture = asd.Engine.Graphics.CreateTexture2D("Resources/Frozenplayer.png"); } } else { base.OnCollided(collidableObject); Dispose(); } }
public override void CollideWithObject(CollidableObject collidableObject) { base.CollideWithObject(collidableObject); if (collidableObject == null) { return; } if (collidableObject is PlayerBullet) { CollidableObject playerbullet = collidableObject; if (IsCollide(playerbullet)) { OnCollided(playerbullet); playerbullet.OnCollided(this); } } }
public virtual void CollideWithObject(CollidableObject collidableObject) { }
public virtual void OnCollided(CollidableObject collidableObject) { //継承先で定義する }
public bool IsCollide(CollidableObject collidableObject) { return((collidableObject.Position - this.Position).Length < radius + collidableObject.radius); }
public override void OnCollided(CollidableObject collidableObject) { base.OnCollided(collidableObject); Dispose(); }