예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 public void LoadTexture(Textures.ID id, string filename)
 {
     if (!textures.ContainsKey(id))
     {
         Texture texture = new Texture(filename);
         textures.Add(id, texture);
     }
 }
예제 #5
0
        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);
        }
예제 #6
0
 public Rock(Textures.ID idRock, ResourceHolder resources)
     : base(idRock, resources)
 {
     Utilities.CenterOrigin(sprite);
 }
예제 #7
0
 public Lake(Textures.ID idLake, ResourceHolder resources)
     : base(idLake, resources)
 {
     Utilities.CenterOrigin(sprite);
 }
예제 #8
0
        public Entity(Textures.ID id, ResourceHolder resources)
        {
            Texture texture = resources.GetTexture(id);

            sprite = new Sprite(texture);
        }
예제 #9
0
 public Texture GetTexture(Textures.ID id)
 {
     return(textures[id]);
 }
예제 #10
0
 public Flame(Textures.ID id, ResourceHolder resources) :
     base(id, resources)
 {
     Utilities.CenterOrigin(sprite);
 }