Вопрос

У меня есть шутер по зомби сверху вниз, и из примера у меня есть странный способ отобразить шкалу здоровья.Код выглядит так:

private function createLives():Void
{
    BaseLifeText = new FlxText(4, 28, 220, "Base Health: ", 12);
    BaseLifeText.color = 0xffFFFFFF;        
    guiGroup.add(BaseLifeText);

    for (i in 0...9) {
        var cur:Int = lifeGroup.length + 1;

               //Start Trick
        var colnum:Int = cur;
        var xPos:Float = (BaseLifeText.x + 96) + 14 * (colnum - 1);
               //End Trick 
        life = new FlxSprite(xPos, 34,"assets/BaseHealth.png");         
        lifeGroup.add(life);
    }
}

Хотя это haxe/haxeflixel, я видел этот трюк еще раз в as3, только при вызове отрисовки.Приведенный выше трюк вместо отображения одного спрайта отображает 9.Есть ли название для этого конкретного трюка?

Часть 2, относящаяся к хитрости выше, я также пытаюсь добавить коллекцию, которая исцелит базу.Однако мне удается складывать его только численно.Я делаю это:

private function collectCoolant(player:FlxObject, cooler:Coolant):Void
{

    cooler.kill();

    var cur:Int = lifeGroup.length + 1;     
    lives ++;

    life.x += 14 * cur;     
    lifeGroup.length + 1;
}

Он оживляет вещь, но не делает это графически, как при ее создании.Как с помощью этой системы можно восстановить работоспособность вещи графически?

Это было полезно?

Решение

  1. Это не уловка.Это тривиальный подход к проблеме, довольно странный и к тому же, как видите, не работающий.
  2. Вы не сможете сделать это так, как делаете сейчас.Прежде всего, lifeGroup.length + 1; является бессмысленным утверждением, если только + перегружен, что не так.Он просто берет длину и добавляет к ней 1.Я предполагаю, что вы хотели сделать что-то вроде lifeGroup.length+= 1; увеличить длину на 1, но, к сожалению, это тоже не сработает.Прежде всего, он не скомпилируется, поскольку свойство длины доступно только для чтения.И даже если бы он скомпилировался и во Flixel было реализовано изменение длины группы, он бы не знал, какой объект добавить в вашу группу, поэтому произошел бы сбой.

    Я бы предложил создать правильный компонент шкалы здоровья и просто работать с ним.В противном случае вы можете продолжать писать плохой код и копировать код создания для увеличения жизней.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top