Пример #1
0
        public void Init()
        {
            GameController.Init();
            dino  = new Dino(new PointF(90, 149), new Size(50, 50));
            enemy = new EnemyBird(new PointF(15, 35), new Size(50, 50));
            mainTimer.Start();
            enemyTimer.Start();
            enemyAttackAnimationTimer.Start();

            Invalidate();
        }
Пример #2
0
        public bool isCollide()
        {
            for (int i = 0; i < GameController.cactuses.Count; i++)
            {
                var    cactus = GameController.cactuses[i];
                PointF delta  = new PointF();
                delta.X = (transform.position.X + transform.size.Width / 2) -
                          (cactus.transform.position.X + cactus.transform.size.Width / 2);
                delta.Y = (transform.position.Y + transform.size.Height / 2) -
                          (cactus.transform.position.Y + cactus.transform.size.Height / 2);

                if (Math.Abs(delta.X) <= transform.size.Width / 2 + cactus.transform.size.Width / 2)
                {
                    if (Math.Abs(delta.Y) <= transform.size.Height / 2 + cactus.transform.size.Height / 2)
                    {
                        return(true);
                    }
                }
            }

            if (isAttack)
            {
                EnemyBird enemy = Form1.enemy;
                CalculatePhysicsForAttack(enemy);

                PointF alfa = new PointF();
                alfa.X = (transform.position.X + transform.size.Width / 2) -
                         (enemy.physics.transform.position.X + enemy.physics.transform.size.Width / 2);
                alfa.Y = (transform.position.Y + transform.size.Height / 2) -
                         (enemy.physics.transform.position.Y + enemy.physics.transform.size.Height / 2);

                if (Math.Abs(alfa.X) <= transform.size.Width / 2 + enemy.physics.transform.size.Width / 2)
                {
                    if (Math.Abs(alfa.Y) <= transform.size.Height / 2 + enemy.physics.transform.size.Height / 2)
                    {
                        return(true);
                    }
                }
                return(false);
            }
            else
            {
                //CalculatePhysicsForAttack(enemy);
                EnemyBird enemy = new EnemyBird(new PointF(15, 35), new Size(50, 50));

                //CalculatePhysicsForAttack(enemy);
                if ((enemy.physics.transform.position.X >= 60 || enemy.physics.transform.position.Y >= 100) && !isCrouching)
                {
                    return(true);
                }
                return(false);
            }
        }
Пример #3
0
        public void CalculatePhysicsForAttack(EnemyBird enemy)
        {
            if (isAttack)
            {
                enemy.physics.transform.position.X += attackSpeed;
                enemy.physics.transform.position.Y  = enemy.physics.transform.position.X * 1.5f + 12.5f;

                if (enemy.physics.transform.position.Y >= 110 || enemy.physics.transform.position.X >= 65)
                {
                    isAttack = false;
                    enemy.physics.transform.position = new PointF(15, 35);
                }
            }
        }