Frage

Ich habe ein Top-Down-Zombie-Shooter-Ding im Gange und ich habe eine seltsame Möglichkeit, anhand eines Beispiels eine Gesundheitsleiste anzuzeigen.Der Code sieht so aus:

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);
    }
}

Obwohl dies haxe/haxeflixel ist, habe ich diesen Trick ein anderes Mal in as3 gesehen, nur beim Draw-Aufruf.Der obige Trick zeigt statt nur eines Sprites 9 an.Gibt es einen Namen für diesen speziellen Trick?

In Teil 2 im obigen Trick versuche ich auch ein Sammlerstück hinzuzufügen, das die Basis heilt.Es gelingt mir jedoch nur, es numerisch zu addieren.Ich mache das:

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

    cooler.kill();

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

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

Es verlängert das Leben des Dings, aber grafisch ist es nicht so, wie es bei seiner Erstellung der Fall war.Wie kann ich mit diesem System die Gesundheit des Dings grafisch wiederherstellen?

War es hilfreich?

Lösung

  1. Es ist kein Trick.Es ist eine triviale Herangehensweise an das Problem, ziemlich seltsam und funktioniert auch nicht, wie Sie sehen können.
  2. Es gibt keine Möglichkeit, es so zu machen, wie Sie es jetzt tun.Erstens, lifeGroup.length + 1; ist eine bedeutungslose Aussage, es sei denn + ist überlastet, was nicht der Fall ist.Es nimmt einfach die Länge und addiert 1 dazu.Ich gehe also davon aus, dass Sie so etwas tun wollten lifeGroup.length+= 1; um die Länge um 1 zu erhöhen, aber leider funktioniert es auch nicht.Erstens lässt es sich nicht kompilieren, da die Längeneigenschaft schreibgeschützt ist.Und selbst wenn das Kompilieren und Ändern der Gruppenlänge in Flixel implementiert worden wäre, hätte es nicht gewusst, welches Objekt es zu Ihrer Gruppe hinzufügen soll, und würde daher abstürzen.

    Mein Vorschlag wäre, eine richtige Gesundheitsriegelkomponente zu erstellen und einfach damit zu arbeiten.Andernfalls können Sie weiterhin fehlerhaften Code schreiben und Ihren Erstellungscode kopieren, um die Leben zu erhöhen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top