문제

나는 Zombie Shooter 일을 계속하고있는 것으로 예에서는 건강 바를 표시하기 위해 이상한 방법을 가지고 있습니다.코드는 그렇게합니다 :

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에 1을 추가합니다.그래서 나는 당신이 lifeGroup.length+= 1;와 같은 것을 1만큼 증가시키기 위해 뭔가를하고 싶지 만, 불행히도 그것은 작동하지 않을 것입니다.첫째, 길이 속성이 읽기 전용이기 때문에 컴파일되지 않습니다.그리고 컴파일하고 그룹 길이를 변경했을지라도 Flixel에서 그룹 길이가 구현 되더라도, 그룹에 추가 할 수있는 객체가 없으므로 충돌합니다.

    제 제안은 적절한 건강 바 구성 요소를 만드고 그냥 작업 할 수 있습니다.그렇지 않으면 삶을 증가시키기 위해 만들어진 코드를 작성하고 작성 코드를 작성할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top