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); } } }
// 指定したオブジェクトと当たり判定をするメソッド 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); } } }
private void CollideWith(CollidableObject obj) { if (obj == null || !obj.IsAlive) { return; } if (obj is Enemy) { if (IsCollide(obj)) { obj.OnCollide(this); } } }
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); } } }