Exemplo n.º 1
0
 private void Awake()
 {
     if (S == null)
     {
         S            = this;
         parentScript = this.transform.parent.GetComponent <Player>();
     }
     else
     {
         Debug.LogError("RightCollision.Awake() - attempted to assign second RightCollision.S");
     }
 }
Exemplo n.º 2
0
 public void update()
 {
     foreach (IEnemy enemy in enemyList)
     {
         foreach (IBlock block in blockList.blockList)
         {
             Rectangle ifCollision = new Rectangle();
             ifCollision = Rectangle.Intersect(enemy.rectangle, block.rectangle);
             ICollision side = new NullCollision(ifCollision);
             if (!ifCollision.IsEmpty)
             {
                 if (ifCollision.Height > ifCollision.Width && enemy.X < block.X)
                 {
                     side = new LeftCollision(ifCollision);
                     new EnemyBlockCollisionHandler(enemy, block, side).Execute();
                 }
                 else if (ifCollision.Height > ifCollision.Width && enemy.X > block.X)
                 {
                     side = new RightCollision(ifCollision);
                     new EnemyBlockCollisionHandler(enemy, block, side).Execute();
                 }
                 else if (ifCollision.Height < ifCollision.Width && enemy.Y > block.Y)
                 {
                     side = new TopCollision(ifCollision);
                     new EnemyBlockCollisionHandler(enemy, block, side).Execute();
                 }
                 else if (ifCollision.Height < ifCollision.Width && enemy.Y < block.Y)
                 {
                     side = new BottomCollision(ifCollision);
                     new EnemyBlockCollisionHandler(enemy, block, side).Execute();
                 }
                 else
                 {
                     new EnemyBlockCollisionHandler(enemy, block, side).Execute();
                 }
             }
         }
     }
 }