在这个游戏中,我制作了一些立方体,你必须避开它们。当你避开它时,它会一直摔倒并击中地面(scoreDetector),因此每当它击中地面时,我得到1分。问题是多维数据集的动画师保持循环(这就是我想要的),但通过这样做,分数计数器会删除该点,并在每次多维数据集的动画开始时不断添加和删除它。
代码:
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;
}
}
答案 0 :(得分:1)
您好,您可以使用包含匹配元素的数组,如下所示:
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 :(得分:0)
这是一个解决方案Khaled,很好的想法! :)但它不是数组的问题。 hitTest不应该在else if()语句中。它应该在它自己的if()语句中。其次,得分++;应该是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;
}