건강 바 / 프로그래밍 트릭 2 Pester.
-
21-12-2019 - |
문제
나는 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;
}
.
그것은 그 일의 삶에 추가되지만, 생성 될 때 그래픽으로 그렇게하지는 않습니다.이 시스템을 사용하여 어떻게 건강을 그래픽으로 복원 할 수 있습니까?
해결책
- 트릭이 아닙니다.그것은 문제에 대한 사소한 접근 방식이며, 당신이 볼 수 있듯이 매우 이상하고 또한 작동하지 않습니다.
-
지금 당신이 그것을하는 것처럼 할 수있는 방법은 없습니다.우선,
lifeGroup.length + 1;
는+
가 오버로드되지 않은 경우의 의미없는 명령문입니다.그것은 단지 길이를 가져 와서 1에 1을 추가합니다.그래서 나는 당신이lifeGroup.length+= 1;
와 같은 것을 1만큼 증가시키기 위해 뭔가를하고 싶지 만, 불행히도 그것은 작동하지 않을 것입니다.첫째, 길이 속성이 읽기 전용이기 때문에 컴파일되지 않습니다.그리고 컴파일하고 그룹 길이를 변경했을지라도 Flixel에서 그룹 길이가 구현 되더라도, 그룹에 추가 할 수있는 객체가 없으므로 충돌합니다.제 제안은 적절한 건강 바 구성 요소를 만드고 그냥 작업 할 수 있습니다.그렇지 않으면 삶을 증가시키기 위해 만들어진 코드를 작성하고 작성 코드를 작성할 수 있습니다.