Exemple #1
0
        private void SpawnAliens()
        {
            const int buffer = 100;

            var minLeft = Camera.Main.AbsoluteLeftXEdgeAt(0) + buffer;

            var(rowCount, columnCount) = GetAlienCounts();
            for (var row = 0; row < rowCount; row++)
            {
                for (var column = 0; column < columnCount; column++)
                {
                    var alien = new Alien
                    {
                        X = (column * (100 + 15)) + minLeft,
                        Y = AlienStartY - (row * (39 + 15))
                    };

                    AlienList.Add(alien);
                }
            }

            CollisionManager.Self.CreateRelationship(AlienList, RightGuardRail)
            .CollisionOccurred = (x, y) => HandleAlienGuideRailCollison(true);

            CollisionManager.Self.CreateRelationship(AlienList, LeftGuardRail)
            .CollisionOccurred = (x, y) => HandleAlienGuideRailCollison(false);
        }
Exemple #2
0
        void CustomActivity(bool firstTimeCalled)
        {
            if (!IsInGame)
            {
                return;
            }

            PlayerShipInstance.Y = PlayerYPosition;
            PlayerShipInstance.X = GuiManager.Cursor.WorldXAt(0);
            PlayerShipInstance.EnsureStillOnScreen();

            foreach (var bullet in BulletList)
            {
                if (!bullet.IsInView())
                {
                    bullet.Destroy();
                }
            }

            if (!AlienList.Any())
            {
                TriggerWinCondition();
                return;
            }

            if (GuiManager.Cursor.PrimaryClick)
            {
                var bullet = BulletFactory.CreateNew();
                bullet.X = PlayerShipInstance.X;
                bullet.Y = PlayerShipInstance.Y;
                bullet.Z = PlayerShipInstance.Z - 1;

                bullet.YVelocity = BulletSpeed;

                CollisionManager.Self.CreateRelationship(bullet, AlienList)
                .CollisionOccurred = (bullet1, alien) =>
                {
                    bullet.Destroy();
                    alien.Destroy();
                };
            }
        }