public void Spawn() { float lastX = 0; Sprite spAsteroid = new Sprite(_gm.LoadImage(asteroidName)); spAsteroid.AutoDispose = false; while (_spawner.IsRunning) { SpriteAsteroid asteroid = new SpriteAsteroid(spAsteroid); do { asteroid.Position.X = RandomManager.Instance.Next(100, (int)World.Instance.WorldSize.X - 100); } while (lastX > asteroid.Position.X && lastX + 100f < asteroid.Position.X); lastX = asteroid.Position.X; asteroid.Position.Y = -200; asteroid.Velocity.Y = (float)(RandomManager.Instance.Next(500, 4500) / 1000f); asteroid.Life = (float)(RandomManager.Instance.Next(150, 800) / 100f); //asteroid.Life = 1000f; asteroid.Type = ObjectType.ENEMY; asteroid.EventDestroyed += EnemyDestoryed; player.DebugObject = asteroid; SceneManager.Add(asteroid, 5); // Wait to spawn another enemy int waitTime = RandomManager.Instance.Next(1000, 5000); ThreadManager.Sleep(waitTime, _spawner); } spAsteroid.Dispose(); }
public SpriteAsteroid CreateAsteroid(float x, float y, float rotation) { if (_spriteAsteroid == null) { _spriteAsteroid = GraphicsManager.Instance.LoadSpriteFromImagePath(String.Format("{0}\\Spritesheets\\asteroid_01.png", AssetPath)); _spriteAsteroid.Frames.Add(new System.Drawing.Rectangle { X = 0, Y = 0, Width = 120, Height = 120 }); } SpriteAsteroid sprite = new SpriteAsteroid(_spriteAsteroid); sprite.Position.X = x; sprite.Position.Y = y; sprite.Velocity.X = 0f; sprite.Velocity.Y = 0f; CircleCollider collider = (CircleCollider)PhysicsFactory.CreateCircleCollider(sprite.Position, 40); collider.Center.X = 125f / 2f; collider.Center.Y = 125f / 2f; sprite.Collider = collider; sprite.Life = (float)(RandomManager.Instance.Next(100, 1200) / 100f); return(sprite); }
public void AddAsteroid(float x, float y) { SpriteAsteroid asteroid = UniverseFactory.Instance.CreateAsteroid(x, y, 0f); int mapX = (int)(x / World.Instance.ScreenSize.X); int mapY = (int)(y / World.Instance.ScreenSize.Y); //MapData[mapX, mapY].Add(asteroid); SceneManager.Instance.Add(asteroid, 4); //DebugObj = asteroid; }
private void AddEntityFromFormat(int typeId, string entityData) { if (typeId == (int)EntityType.Player) { Character character = new Character(entityData); zoneManager.AddEntity(character); Logger.Output(this, "AddEntity() added new character ID {0}.", character.Id); } else if (typeId == (int)EntityType.Unit) { Unit entity = new Unit(entityData); SpriteUnit sprite = new SpriteUnit(entity, TextureManager.Singletone.Get("Windmill")); entity.Tag = sprite; zoneManager.AddEntity(entity); Logger.Output(this, "AddEntity() added new unit ID {0}.", entity.Id); } else if (typeId == (int)EntityType.EnergyStation) { EnergyStation station = new EnergyStation(entityData); SpriteEnergyStation sprite = new SpriteEnergyStation(station, TextureManager.Singletone.Get("EnergyStation")); station.Tag = sprite; zoneManager.AddEntity(station); Logger.Output(this, "AddEntity() added new energy station ID {0}.", station.Id); } else if (typeId == (int)EntityType.EnergyRelay) { EnergyRelay relay = new EnergyRelay(entityData); SpriteEnergyRelay sprite = new SpriteEnergyRelay(relay, TextureManager.Singletone.Get("EnergyRelay")); relay.Tag = sprite; zoneManager.AddEntity(relay); Logger.Output(this, "AddEntity() added new energy relay ID {0}.", relay.Id); } else if (typeId == (int)EntityType.MineralMiner) { MineralMiner miner = new MineralMiner(entityData); SpriteMineralMiner sprite = new SpriteMineralMiner(miner, TextureManager.Singletone.Get("MineralMiner")); miner.Tag = sprite; zoneManager.AddEntity(miner); Logger.Output(this, "AddEntity() added new mineral miner ID {0}.", miner.Id); } else if (typeId == (int)EntityType.BasicLaser) { BasicLaser laser = new BasicLaser(entityData); zoneManager.AddEntity(laser); Logger.Output(this, "AddEntity() added new basic laser ID {0}.", laser.Id); } else if (typeId == (int)EntityType.PulseLaser) { PulseLaser laser = new PulseLaser(entityData); zoneManager.AddEntity(laser); Logger.Output(this, "AddEntity() added new pulse laser ID {0}.", laser.Id); } else if (typeId == (int)EntityType.TacticalLaser) { TacticalLaser laser = new TacticalLaser(entityData); zoneManager.AddEntity(laser); Logger.Output(this, "AddEntity() added new tactical laser ID {0}.", laser.Id); } else if (typeId == (int)EntityType.Asteroid) { Asteroid asteroid = new Asteroid(entityData); SpriteAsteroid sprite = new SpriteAsteroid(asteroid, TextureManager.Singletone.Get("Asteroid1")); asteroid.Tag = sprite; zoneManager.AddEntity(asteroid); Logger.Output(this, "AddEntity() added new asteroid ID {0}.", asteroid.Id); } else { Entity entity = new Entity(entityData); zoneManager.AddEntity(entity); Logger.Output(this, "AddEntity() added unknown entity type ID {0}.", entity.Id); } }