Question

J'ai une chose de shooter zombie de haut en bas et j'ai un moyen étrange d'un exemple pour afficher une barre de santé.Le code va comme si:

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

S'il s'agit de HAXE / HAXEFLIXEL, j'ai vu cette astuce une autre fois dans AS3, uniquement sur l'appel de tirage au sort.L'astuce ci-dessus au lieu d'afficher simplement une sprite, affiche 9. Y a-t-il un nom pour cette astuce spécifique?

Partie 2 Relatif à l'astuce ci-dessus, j'essaie également d'ajouter une collectionnable qui guérira la base.Cependant, je n'ai réussi que pour l'ajouter numériquement.Je fais ça:

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

    cooler.kill();

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

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

Cela ajoute à la vie de la chose, mais cela ne le fait pas comme graphiquement quand c'est créé.Utilisation de ce système Comment puis-je restaurer la santé à la chose graphique?

Était-ce utile?

La solution

  1. Ce n'est pas un tour.C'est une approche triviale du problème, assez étrange et ne fonctionne pas, comme vous pouvez le voir.
  2. Il n'y a aucun moyen que vous puissiez le faire comme vous le faites maintenant.Tout d'abord, lifeGroup.length + 1; est une instruction dénuée de sens, à moins que + ne soit surchargé, ce qui n'est pas le cas.Il prend juste la longueur et ajoute 1 à elle.Donc, je suppose que vous vouliez faire quelque chose comme lifeGroup.length+= 1; à l'incrémentation de la longueur de 1, mais malheureusement, cela ne fonctionnera pas aussi.Tout d'abord, cela ne compilera pas, car la propriété de longueur est en lecture seule.Et même si cela compilait et changeant la longueur de groupe a été mis en œuvre dans Flixel, il n'aurait pas connu quel objet ajouter à votre groupe, de sorte qu'il se bloque.

    Ma suggestion serait de créer une composante barre de santé appropriée et de travailler avec elle.Sinon, vous pouvez continuer à écrire de mauvais code et à copier votre code de création pour incrémenter des vies.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top