Я новичок в JS и JQuery.я пытаюсь создать тип игры GuitarHero в JQuery, но заметки не падают плавно, то, что я делаю, в основном вызывает setTimeout()
в цикле - каждый с разным таймаутом (заданным в массиве - "Песня Скипта "если хочешь".код выглядит следующим образом:
while(counter < curSong.numNotes){
// set the parameters sent to runCreateNote
runCreateNote(counter, margin, entity, interval, name);
counter++;
}
когда runCreateNote
вызывает setTimeout()
(для целей области видимости)
это код анимации:
noteBall.animate({
top: (noteBall.parent().height() - noteBall.height()*2) + 'px'
}, {
duration: fallingtime,
queue: false,
easing: "linear",
step: function() {
checkStep(id);
},
complete: function() {
reachBottom(id);
}
});
function checkStep(id){
var noteBall = $("#" + id);
var name = id.substring(0,1);
if (name == "R"){
if (isInRange(noteBall)){
isRedIn = true;
} else {
isRedIn = false;
}
}
if (name == "B"){
if (isInRange(noteBall)){
isBlueIn = true;
} else {
isBlueIn = false;
}
}
if (name == "G"){
if (isInRange(noteBall)){
isGreenIn = true;
} else {
isGreenIn = false;
}
}
if (name = "O"){
if (isInRange(noteBall)){
isOrangeIn = true;
} else {
isOrangeIn = false;
}
}
}
iНе знаю, является ли какой-либо код релевантным, но я просто хотел показать, что анимация не выглядит слишком тяжелой (я думаю, что она будет работать гладко)
Я пропустил какой-то ключевой принцип?