示例#1
0
 protected override void OnCollide(CollidableObject collidableObject)
 {
     base.OnCollide(collidableObject);
     if (collidableObject is Player)
     {
         Parent.RemoveChildNode(this);
     }
 }
示例#2
0
 protected override void OnCollide(CollidableObject collidableObject)
 {
     base.OnCollide(collidableObject);
     if (collidableObject is PlayerBullet)
     {
         AddScore(Score);
         Parent.RemoveChildNode(this);
     }
 }
示例#3
0
 protected override void OnCollide(CollidableObject collidableObject)
 {
     base.OnCollide(collidableObject);
     if (collidableObject is Enemy)
     {
         Parent.RemoveChildNode(this);
         _playerInfo.playerBullets.Dequeue();
     }
 }
示例#4
0
 protected override void OnCollide(CollidableObject collidableObject)
 {
     base.OnCollide(collidableObject);
     if (collidableObject is NomalEnemy || collidableObject is EnemyBullet)
     {
         _hp -= 1;
         if (_hp <= 0)
         {
             Parent.RemoveChildNode(this);
         }
     }
     if (collidableObject is FreezeBullet)
     {
         _playersHealth = PlayersHealth.Frozen;
         Texture        = Texture2D.LoadStrict("Resources/FrozenPlayer.png");
     }
 }
示例#5
0
        protected void CollideWith(CollidableObject collidableObject)
        {
            if (collidableObject == null)
            {
                return;
            }
            if (!collidableObject.doSurvey)
            {
                //衝突判定しないオブジェクトに衝突した場合、その判定しないオブジェクトの衝突時の処理を呼び出す

                /*例えば、自機と敵弾が衝突する場合、呼び出されたCollideWith関数の引数は敵弾(=衝突判定しないオブジェクト)になる。
                 * すなわち、敵弾が磁気と衝突した際に呼び出すべき処理(OnCollide関数)をcollidableObject.Oncollode(this(自機のこと))で呼び出している
                 */
                collidableObject.OnCollide(this);
            }
            /*上の例に従えば、以下の処理は「自機が敵弾と衝突した際に呼び出す処理」を呼び出すのに相当する。(あくまでOncollideを呼び出したのは自機である)*/
            OnCollide(collidableObject);
        }
示例#6
0
 protected virtual void OnCollide(CollidableObject collidableObject)
 {
     //継承先で処理を実装する
 }