private void Awake() { if (S == null) { S = this; parentScript = this.transform.parent.GetComponent <Player>(); } else { Debug.LogError("BottomCollision.Awake() - attempted to assign second BottomCollision.S"); } }
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(); } } } } }