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; }
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); }