Pergunta

Eu tenho um jogo de tiro de zumbi de cima para baixo e tenho uma maneira estranha de um exemplo para exibir uma barra de saúde.O código é assim:

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

Embora seja haxe/haxeflixel, já vi esse truque outra vez no as3, feito apenas na chamada draw.O truque acima, em vez de exibir apenas um sprite, exibe 9.Existe um nome para esse truque específico?

Parte 2 Referente ao truque acima, também estou tentando adicionar um colecionável que irá curar a Base.No entanto, só consigo adicioná-lo numericamente.Eu estou fazendo isto:

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

    cooler.kill();

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

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

Acrescenta vida à coisa, mas não o faz graficamente como quando é criado.Usando este sistema, como posso restaurar graficamente a saúde da coisa?

Foi útil?

Solução

  1. Não é um truque.É uma abordagem trivial do problema, bastante estranha e também não funciona, como você pode ver.
  2. Não há como você fazer isso como faz agora.Em primeiro lugar, lifeGroup.length + 1; é uma afirmação sem sentido, a menos que + está sobrecarregado, o que não é o caso.Apenas pega o comprimento e adiciona 1 a ele.Então presumo que você queria fazer algo como lifeGroup.length+= 1; para aumentar o comprimento em 1, mas infelizmente também não funcionará.Primeiro de tudo, ele não será compilado, porque a propriedade length é somente leitura.E mesmo que a compilação e a alteração do comprimento do grupo fossem implementadas no Flixel, ele não saberia qual objeto adicionar ao seu grupo, então ele travaria.

    Minha sugestão seria criar um componente adequado da barra de saúde e apenas trabalhar com ele.Caso contrário, você pode continuar escrevendo código incorreto e copiar e colar seu código de criação para aumentar vidas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top