2012-06-03 3 views
0

이 게임에서 나는 일부 큐브를 떨어 뜨렸으므로 그들을 피하십시오. 당신이 그것을 피했을 때, 그것은 떨어지는 것을 계속하고 땅에 닿습니다 (scoreDetector), 그래서 때마다 그것이 땅에 부딪히면, 나는 1 점을 얻습니다. 문제는 큐브의 애니메이션이 루핑을 유지한다는 것입니다. (내가 원했던 것입니다.)하지만 큐브의 애니메이션이 시작될 때마다 스코어 카운터가 포인트를 제거하고 큐브를 추가하고 제거하는 것을 유지합니다.AS3 - hitTestObject가 적용되었을 때의 점수

코드 :

var time:int; 
var timer:Timer = new Timer(1000,0); 
var score:int = 0; 
var hittedObjects:Array = new Array(); 
score = 0; 
scoreCounter.text = "Score: " + score; 

timer.addEventListener(TimerEvent.TIMER, cubeFall); 

timer.start(); 

function cubeFall(t:TimerEvent) { 

time++; 

if (time == 3) { 
    cube_1.play(); 
} else if (time == 10) { 
    cube_2.play(); 
} 

// Add Score 

else if (cube_1.hitTestObject(scoreDetector) && hittedObjects.indexOf(cube_1)>0) { 
score++; 
scoreCounter.text = "Score: " + score; 
hittedObjects.push(cube_1); 
} 
} 

답변

1

안녕 당신이 그렇게 같은 hitted 요소를 포함하는 배열을 사용할 수 있습니다! :) 그러나 그것은 배열의 문제가 아닙니다. hitTest는 else if() 문에 있어서는 안됩니다. 그것은 자신의 if() 문이어야합니다. 둘째, score ++; hitTest if() 문 내부의 유일한 것이어야합니다. scoreCounter.text = "점수 :"+ 점수; 은 if() 문의 외부에 있어야합니다. 여기에 보이는 모습이 있습니다.

var time:int; 
var timer:Timer = new Timer(1000,0); 
var score:int = 0; 

score = 0; 
scoreCounter.text = "Score: " + score; 

timer.addEventListener(TimerEvent.TIMER, cubeFall); 

timer.start(); 

function cubeFall(t:TimerEvent) { 

time++; 

if (time == 3) { 
    cube_1.play(); 
} else if (time == 10) { 
    cube_2.play(); 
} 

// Add Score 

if (cube_1.hitTestObject(scoreDetector)) { 
score++; 
} 
scoreCounter.text = "Score: " + score; 
} 
+0

문제에 대한 적절한 접근 방식이지만 그 구문은 꽤 엉망입니다. – jhocking

+0

죄송합니다. '&&'실수를 잊어 버렸습니다. –

+0

또한 0이 아닌 0이되어야합니까? – jhocking

0

하나의 솔루션 칼레드있어, 좋은 생각 :

var time:int; 
var timer:Timer = new Timer(1000,0); 
var score:int = 0; 

score = 0; 
scoreCounter.text = "Score: " + score; 

timer.addEventListener(TimerEvent.TIMER, cubeFall); 

timer.start(); 

function cubeFall(t:TimerEvent) { 

time++; 

if (time == 3) { 
    cube_1.play(); 
} else if (time == 10) { 
    cube_2.play(); 
} 

// Add Score 

else if (cube_1.hitTestObject(scoreDetector)) { 
score++; 
scoreCounter.text = "Score: " + score; 
} 
} 
관련 문제