/// <summary> /// Gets called when a Scene is loaded into memory. /// Load all the stuff needed for Game Scenes /// </summary> protected override void OnSceneLoad() { // Get the green floor SpriteBatch floorBatch = this.ManagerForSpriteBatch.Find(SpriteBatch.Name.Shields); SpriteEntity floorSprite = SpriteEntityManager.Self.Find(Sprite.Name.Floor); floorBatch.Attach(floorSprite, floorSprite.Id); ///// GameObject Factories //////////////////////////// // Create all the shields ShieldFactory shieldFactory = new ShieldFactory(SpriteBatch.Name.Shields); shieldFactory.CreateShields(); // Create all the Walls WallFactory wallFactory = new WallFactory(); wallFactory.CreateWalls(); // Create all the Aliens AlienFactory alienFactory = new AlienFactory(SpriteBatch.Name.Aliens); alienFactory.LoadResources(); alienFactory.CreateAliens(); // Create the player PlayerFactory playerFactory = new PlayerFactory(this); playerFactory.InitializeResources(); playerFactory.CreatePlayer(); // Create the UFO UFOFactory ufoFactory = new UFOFactory(); ufoFactory.CreateObjects(); }
public virtual void Start() { #region инициализация объектов var randomNumberGenerator = new Random(); for (int i = 0; i < _gameObjects.Count; i++) { if (!_gameObjects[i].Is(AGameObject.EnumObjectType.Player)) { continue; } var player = _gameObjects[i] as MainSkyShootService; if (player == null) { Trace.WriteLine("Error: !!! IsPlayer true for non player object"); continue; } _gameObjects[i].TeamIdentity = _sessionTeamsList.GetTeamByNymber(1); _gameObjects[i].TeamIdentity.Members.Add(_gameObjects[i]); player.MeMoved += SomebodyMoved; player.MeShot += SomebodyShot; player.MeChangeWeapon += SomebodyChangedWeapon; player.Coordinates = new Vector2(500 + (randomNumberGenerator.Next() % 200 - 100), 500 + (randomNumberGenerator.Next() % 200 - 100)); player.Speed = Constants.PLAYER_DEFAULT_SPEED; player.Radius = Constants.PLAYER_RADIUS; player.Weapon = new Weapon.Pistol(Guid.NewGuid(), player); player.RunVector = new Vector2(0, 0); player.MaxHealthAmount = player.HealthAmount = Constants.PLAYER_HEALTH; } _gameObjects.AddRange(_wallFactory.CreateWalls()); #endregion _timeHelper = new TimeHelper(TimeHelper.NowMilliseconds); _timerCounter = 0; _updating = false; _lastUpdate = 0; _updateDelay = 0; _gameTimer = new Timer(Constants.FPS) { AutoReset = true }; _gameTimer.Elapsed += TimerElapsedListener; _gameTimer.Start(); // todo номер игры //Trace.Listeners.Add(new Logger(Logger.SolutionPath + "\\logs\\server_game_" + LocalGameDescription.GameId + ".txt", _timeHelper) {Name = "game logger"}); Trace.WriteLine("Game Started"); Trace.Listeners.Remove(Logger.ServerLogger); IsStarted = true; }