Ejemplo n.º 1
0
        public override void ProvessEvents()
        {
            if (SwinGame.KeyTyped(Settings.PAUSE))
            {
                ScreenControler.SetScreen("PauseMenu");
            }

            for (int i = 0; i < 7; ++i)
            {
                if (Tick % (_triggers[i]) == 0)
                {
                    GameObjects.AddItem(new ItemEntity(new Point(_rand.Next() % (460 - GameResources.GameImage("Item" + _itemTypes[i].ToString()).Width) + 40, 50), _itemTypes[i]));
                }
            }

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 13; j++)
                {
                    if (Tick % (_rand.Next() % 50000 + 30) == 0 && Tick > 0)
                    {
                        Point position = new Point(_rand.Next() % 460 + 40, _rand.Next() % 460 + 40);
                        for (int k = 0; k < 12; k++)
                        {
                            GameObjects.AddBullet(new BulletEntity(_bulletColours[i], _bulletTypes[j], null, position, _trajectories[k]));
                        }
                    }
                }
            }

            GameObjects.ProcessItemEvents();
            GameObjects.ProcessBulletEvents();
            GameObjects.Player.ProcessEvents();

            NextTick();
        }
        public override void ProcessEvents()
        {
            ProcessMovement();

            Level();

            if (SwinGame.KeyDown(Settings.SHOOT))
            {
                Cannon();
            }

            foreach (BulletEntity bullet in GameObjects.Bullets)
            {
                if (bullet.Owner != this)
                {
                    if (PolygonCollisions.Collides(_grazebox, bullet.Hitbox))
                    {
                        if (PolygonCollisions.Collides(Hitbox, bullet.Hitbox))
                        {
                            Hitpoints    -= bullet.Hitpoints;
                            bullet.Remove = true;
                            break;
                        }
                        if (!bullet.Grazed)
                        {
                            GameScores.GRAZE++;
                            bullet.Grazed = true;
                            break;
                        }
                    }
                }
            }

            if (SwinGame.KeyDown(Settings.BOMB) && GameScores.BOMB > 0 && _cooldown == 0)
            {
                foreach (BulletEntity bullet in GameObjects.Bullets)
                {
                    if (bullet.Owner != this)
                    {
                        GameObjects.AddItem(new ItemEntity(bullet.Hitbox.Middle, ItemType.Star));
                        bullet.Remove = true;
                    }
                }

                foreach (ItemEntity item in GameObjects.Items)
                {
                    item.Flag = true;
                }

                GameScores.BOMB--;
                _cooldown = 60;
            }

            if (Hitbox.Middle.Y < 160)
            {
                foreach (ItemEntity item in GameObjects.Items)
                {
                    item.Flag = true;
                }
            }

            if (_cooldown > 0)
            {
                _cooldown--;
            }

            Tick++;
        }