/// <summary>
        /// This method update the scene after a frame has finished rendering
        /// </summary>
        /// <param name="evt"></param>
        protected override void UpdateScene(FrameEvent evt)
        {
            physics.UpdatePhysics(0.01f);
            base.UpdateScene(evt);

            if (shoot)
            {
                AddBomb();
            }

            foreach (Bomb bomb in bombs)
            {
                bomb.Update(evt);
                if (bomb.RemoveMe)
                {
                    bombsToRemove.Add(bomb);
                }
            }

            foreach (Bomb bomb in bombsToRemove)
            {
                bombs.Remove(bomb);
                bomb.Dispose();
            }
            bombsToRemove.Clear();

            shoot = false;

            inputsManager.ProcessInput(evt);
            player.Update(evt);
            mCamera.LookAt(player.Position);

            robot.Animate(evt);
            robot2.Animate(evt);
            robot3.Animate(evt);

            gameHMD.Update(evt);
        }
예제 #2
0
        protected override void UpdateScene(FrameEvent evt)
        {
            physics.UpdatePhysics(0.01f);
            base.UpdateScene(evt);

            if (shoot)
            {
                testGun.AddBomb();
            }

            foreach (Bomb bomb in testGun.bombs)
            {
                bomb.Update(evt);
                if (bomb.RemoveMe)
                {
                    testGun.bombsToRemove.Add(bomb);
                }
            }

            foreach (Bomb bomb in testGun.bombsToRemove)
            {
                testGun.bombs.Remove(bomb);
                bomb.Dispose();
            }
            testGun.bombsToRemove.Clear();

            foreach (BlueGem blueGem in blueGems)
            {
                blueGem.Update(evt);
                if (blueGem.RemoveMe)
                {
                    blueGemsToRemove.Add(blueGem);
                }
            }

            foreach (BlueGem blueGem in blueGemsToRemove)
            {
                blueGems.Remove(blueGem);
                blueGem.Dispose();
            }
            blueGemsToRemove.Clear();

            foreach (RedGem redGem in redGems)
            {
                redGem.Update(evt);
                if (redGem.RemoveMe)
                {
                    redGemsToRemove.Add(redGem);
                }
            }

            foreach (RedGem redGem in redGemsToRemove)
            {
                redGems.Remove(redGem);
                redGem.Dispose();
            }
            redGemsToRemove.Clear();

            foreach (ShieldPU shield in shieldPU)
            {
                shield.Update(evt);
                if (shield.RemoveMe)
                {
                    shieldPUToRemove.Add(shield);
                }
            }

            foreach (ShieldPU shield in shieldPUToRemove)
            {
                shieldPU.Remove(shield);
                shield.Dispose();
            }
            shieldPUToRemove.Clear();


            player.Update(evt);
            //robot1.Animate(evt);
            //robot2.Animate(evt);
            //robot3.Animate(evt);
            hudElement.Update(evt);

            shoot = false;
            mCamera.LookAt(player.Position);

            if (hudElement.gameWon)
            {
                hudElement.gameWon = false;
                Console.WriteLine("You Won :)");
                DestroyScene();
            }

            if (hudElement.gameLost)
            {
                hudElement.gameLost = true;
                Console.WriteLine("You Lost :(");
                DestroyScene();
            }
        }