我是JavaScript新手,我无法弄清楚如何使用一个函数调整多个元素的大小来节奏我的节奏游戏。这是我的CSP类,并且遗憾地没有使用jQuery。我也只限于我正在使用的程序(AppLab)提供的命令。我现在的目标是使一个圆圈的“动画”增长到所需的大小,以表明它应该被点击。我需要这些元素出现,而另一个元素正在增长,等等。
我知道我的代码可能很糟糕,所以如果还有一种方法可以简化或改进它,我很想知道。
这是我当前的程序代码,而hitIndicator函数是我遇到的最麻烦的函数:
var circleSizeW = 0;
var circleSizeL = 0;
var score = 0;
hitCircle("hitcircle", 300, 6, 206);
hitCircle("image2", 300, 6, 682);
function circleEffects(circleid, whentohit) {
setTimeout(function() {
onEvent(circleid, "click", function() {
playSound("47 (1).mp3", false);
hideElement(circleid);
});
}, whentohit);
}
function hitIndicator(circleid, growthRate) {
var xPos = getXPosition(circleid);
var yPos = getYPosition(circleid);
var t = setInterval(function() {
circleSizeW = circleSizeW + growthRate;
circleSizeL = circleSizeL + growthRate;
xPos = xPos - (growthRate/2);
yPos = yPos - (growthRate/2);
showElement(circleid);
setSize(circleid, circleSizeW, circleSizeL);
setPosition(circleid, xPos, yPos);
if (circleSizeW >= 60) {
clearInterval(t);
circleSizeW = 0;
circleSizeL = 0;
}
}, 50);
}
function scoreSystem(circleid, whentohit) {
setTimeout(function() {
onEvent(circleid, "click", function() {
score = score + 100;
setText("scoreTrack", score);
});
}, whentohit);
}
function hitCircle(circleid, whentohit, growthRate, appearancetime) {
setTimeout(function() {
console.log("hitcircle");
circleEffects(circleid, whentohit);
hitIndicator(circleid, growthRate);
scoreSystem(circleid, whentohit);
}, appearancetime);
我的代码还远未完成,因此仍有许多事情需要完成。 我不确定如何在相似的时间让多个圆圈运行该函数,因为当我尝试修复错误/更改函数参数的值时,它们有时会循环两次,无限循环或接收前一个圆的更改值而前一个圈子仍在增长。
答案 0 :(得分:0)
我对Javascript也很新,但我对这里应该做的事情有一个很好的了解。