Ejemplo n.º 1
0
        public override void Reset()
        {
            base.Reset();

            map = new Map(this);
            hud = new HUD(this, map);
            enemies = new EnemiesManager(this);

            //Atribui as pistas da estrada para o gestor de inimigos conhecer
            enemies.CurrentRoad = ((IRoad)map.Road).Lanes;

            hero = new Heroi(Game, map);
            hero.SpriteBatch = this.SpriteBatch;
            hero.Velocity = Vector2.Zero;
            hero.Scrollable = true;
            map.Add(hero);
            map.ChangeLaneRegister((IChangeLanelistener)hero);
            map.Velocity = Vector2.Zero;

            base.LoadContent();

            map.ColisionsOccours += OnColisionsOccours;
            map.ChangeRoadType += OnChangeRoad;

            //inicia a geração de inimigos na estrada
            enemies.startGeneration(map);
            gameIsOver = false;
            timer = 3000;
        }
Ejemplo n.º 2
0
        private void RandomizeEnemy(IDrawableActor enemy)
        {
            //calcula da velocidade do carro
            float speed = (float) ( random.NextDouble() * _maxSpeed );

            if (speed < _minSpeed) speed = _minSpeed;

            float LocY;

            int numlane;

            enemy.Velocity = new Vector2( 0 , - speed );

            //verifica se o carro inimigo e veloz ou lento em relação a velocidade atual do map;
            if (_currentMap.Velocity.Y < speed )
            {
                LocY = _currentScene.Game.Window.ClientBounds.Bottom - 1;
                numlane = random.Next(maxLanes);

            }
            else
            {
                LocY = -enemy.Bounds.Height;
                numlane = random.Next(maxLanes);
            }

            enemy.Location = new Vector2(currLanes.LanesList[numlane], LocY);
        }