public Turret(Textures.ID id, ResourceHolder resources, Tank tank) : base(id, resources) { // Задаем параметры турели this.tank = tank; waterPressure = minWaterPressure; waterCapacity = maxWaterCapacity - 3; up = false; weaponReady = false; // Создаем полоску для указания направления турели direction = new RectangleShape(new Vector2f(2, 32)); Utilities.CenterOrigin(direction, 0, 32); TurretMoved += delegate(object sender, MoveTurretEventArgs e) { direction.Position = e.newPosition; }; TurretRotated += delegate(object sender, RotateTurretEventArgs e) { direction.Rotation = e.newRotation; }; TurretUp += delegate(object sender, UpTurretEventArgs e) { direction.FillColor = Color.Blue; }; TurretDown += delegate(object sender, DownTurretEventArgs e) { direction.FillColor = Color.Red; }; // Выставляем Origin в центр картинки Utilities.CenterOrigin(sprite); }
public Tank(Textures.ID idTank, Textures.ID idTurret, ResourceHolder resources, TankColor color) : base(idTank, resources) { // Создаем турель (башню) танка turret = new Turret(idTurret, resources, this); // Определяем цвет танка this.color = color; // Определяем номер танка number = new Text(((int)color + 1).ToString(), resources.GetFont(Fonts.ID.Sansation), 20); number.FillColor = Color.Red; number.OutlineThickness = 0.75f; Utilities.CenterOrigin(number); TankMoved += delegate(object sender, MoveTankEventArgs e) { number.Position = e.newPosition + new Vector2f(Utilities.GetInstance().TILE_SIZE / 3, Utilities.GetInstance().TILE_SIZE / 3); }; // Создаем полоску для указания направления танка direction = new RectangleShape(new Vector2f(6, 16)); direction.FillColor = Color.Yellow; Utilities.CenterOrigin(direction, 0, 16); TankMoved += delegate(object sender, MoveTankEventArgs e) { direction.Position = e.newPosition; }; TankRotated += delegate(object sender, RotateTankEventArgs e) { direction.Rotation = sprite.Rotation; }; // Выставляем Origin в центр картинки Utilities.CenterOrigin(sprite); }
public Wind(Textures.ID id, ResourceHolder resources, string parameters) : base(id, resources) { settings = parameters.Split(); currentCycle = 0; cycles = settings.Length / 3; direction = ParseDirection(settings[currentCycle * 3 + 0]); power = int.Parse(settings[currentCycle * 3 + 1]); time = int.Parse(settings[currentCycle * 3 + 2]); // Устанавливаем параметры ветра для отображения на карте Utilities.CenterOrigin(sprite); sprite.Position = new Vector2f(Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().WIDTH_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 1.0f, Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().HEIGHT_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 0.5f); SetRotation(); powerText = new Text(power.ToString(), resources.GetFont(Fonts.ID.Sansation), 20); powerText.Position = new Vector2f(Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().WIDTH_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 1.75f, Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().HEIGHT_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 0.5f); powerText.FillColor = Color.Blue; powerText.OutlineThickness = 0.25f; Utilities.CenterOrigin(powerText); timeText = new Text(time.ToString(), resources.GetFont(Fonts.ID.Sansation), 20); timeText.Position = new Vector2f(Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().WIDTH_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 0.25f, Utilities.GetInstance().TILE_SIZE *Utilities.GetInstance().HEIGHT_TILE_COUNT - Utilities.GetInstance().TILE_SIZE * 0.5f); timeText.FillColor = Color.Blue; timeText.OutlineThickness = 0.25f; Utilities.CenterOrigin(timeText); }
public CoordinateSystem(uint width, uint height, ResourceHolder resources) { this.width = width; this.height = height; text = new Text(string.Empty, resources.GetFont(Fonts.ID.Sansation), 12); text.FillColor = Color.Black; text.OutlineThickness = 0.2f; }
public Terrain(List <GameObject> objects, ResourceHolder resources, Wind wind) { trees = new List <Tree>(); houses = new List <House>(); lakes = new List <Lake>(); rocks = new List <Rock>(); this.wind = wind; foreach (GameObject item in objects) { // Создаем деревья if (item.name == "tree") { Tree tree = new Tree(Textures.ID.Tree, resources); tree.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2); if (item.GetPropertyBool("burns")) { // TODO: Такое себе место (чтобы подожглось, нужно сделать так) tree.state.currentTimeToSpread = TreeState.timeToSpread; tree.Fire(1); } tree.SetHitpoints(item.GetPropertyInt("hitpoints")); trees.Add(tree); } // Создаем дома if (item.name == "house") { House house = new House(Textures.ID.House, resources); house.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2); if (item.GetPropertyBool("burns")) { // TODO: Такое себе место (чтобы подожглось, нужно сделать так) house.state.currentTimeToSpread = house.state.timeToSpread; house.Fire(1); } house.SetHitpoints(item.GetPropertyInt("hitpoints")); houses.Add(house); } // Создаем озера if (item.name == "lake") { Lake lake = new Lake(Textures.ID.Lake, resources); lake.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2); lakes.Add(lake); } // Создаем скалы if (item.name == "rock") { Rock rock = new Rock(Textures.ID.Rock, resources); rock.Position = new Vector2f(item.rect.Left + Utilities.GetInstance().TILE_SIZE / 2, item.rect.Top - Utilities.GetInstance().TILE_SIZE / 2); rocks.Add(rock); } } }
public Tree(Textures.ID idTree, ResourceHolder resources) : base(idTree, resources) { state = new NormalTreeState(); flame = new Flame(Textures.ID.Fire, resources); burnedTreeSprite = new Sprite(resources.GetTexture(Textures.ID.BurnedTree)); // Количество жизней дерева hitPoints = new Text(state.hitPoints.ToString(), resources.GetFont(Fonts.ID.Sansation), 12); hitPoints.FillColor = Color.Blue; hitPoints.OutlineThickness = 0.5f; Utilities.CenterOrigin(hitPoints); hitPoints.Position = sprite.Position + new Vector2f(Utilities.GetInstance().TILE_SIZE / 3, Utilities.GetInstance().TILE_SIZE / 3); Utilities.CenterOrigin(burnedTreeSprite); Utilities.CenterOrigin(sprite); }
private void LoadResources() { try { resources = new ResourceHolder(); // Загружаем текстуры resources.LoadTexture(Textures.ID.House, "Media/Textures/House.png"); resources.LoadTexture(Textures.ID.BurnedHouse, "Media/Textures/BurnedHouse.png"); resources.LoadTexture(Textures.ID.Fire, "Media/Textures/Fire.png"); resources.LoadTexture(Textures.ID.RedTank, "Media/Textures/RedTank.png"); resources.LoadTexture(Textures.ID.RedTurret, "Media/Textures/RedTurret.png"); resources.LoadTexture(Textures.ID.BlueTank, "Media/Textures/BlueTank.png"); resources.LoadTexture(Textures.ID.BlueTurret, "Media/Textures/BlueTurret.png"); resources.LoadTexture(Textures.ID.YellowTank, "Media/Textures/YellowTank.png"); resources.LoadTexture(Textures.ID.YellowTurret, "Media/Textures/YellowTurret.png"); resources.LoadTexture(Textures.ID.GreenTank, "Media/Textures/GreenTank.png"); resources.LoadTexture(Textures.ID.GreenTurret, "Media/Textures/GreenTurret.png"); resources.LoadTexture(Textures.ID.PinkTank, "Media/Textures/PinkTank.png"); resources.LoadTexture(Textures.ID.PinkTurret, "Media/Textures/PinkTurret.png"); resources.LoadTexture(Textures.ID.GreyTank, "Media/Textures/GreyTank.png"); resources.LoadTexture(Textures.ID.GreyTurret, "Media/Textures/GreyTurret.png"); resources.LoadTexture(Textures.ID.Tree, "Media/Textures/Tree.png"); resources.LoadTexture(Textures.ID.BurnedTree, "Media/Textures/BurnedTree.png"); resources.LoadTexture(Textures.ID.Lake, "Media/Textures/Lake.png"); resources.LoadTexture(Textures.ID.Rock, "Media/Textures/Rock.png"); resources.LoadTexture(Textures.ID.Wind, "Media/Textures/Wind.png"); // Загружаем шрифты resources.LoadFont(Fonts.ID.Sansation, "Media/Fonts/Sansation.ttf"); } catch (Exception) { throw new Exception("Не удалось загрузить необходимые ресурсы."); } }
public Entity(Textures.ID id, ResourceHolder resources) { Texture texture = resources.GetTexture(id); sprite = new Sprite(texture); }