我知道這個問題已經被問了很多次,我也看到了他們在SO和其他論壇上的解決方案。解決方案建議的大多數時間是使用Web Workers。一起運行多個jquery函數
我正在開發的遊戲需要我同時運行多個功能。其中一個是click
功能,另一個是setInterval
。
我的做法可以參見here in this JSFiddle。 (繼續點擊灰色區域讓玩家跳躍)。
整個想法是在1000ms間隔後不斷產生藍色障礙物。
在我先前的方法中,只有當我點擊使球員跳躍時纔會產生障礙,否則他們不會如預期那樣。
我如何才能並行運行這樣兩種功能方面實現 的產卵障礙的目的,同時也使玩家的跳躍。
其次,考慮到遊戲開發實施這個過程 最好的方法是什麼,即達到一定的效率水平以便動畫不受影響。
下面是HTML和Javascript代碼,我一直在努力:
<div class="container">
<div class="player"></div>
<div class="obstacle-container">
<div class="obstacle"></div>
</div>
</div>
$.fn.animator = function() {
var hit_list, done = false;
$(".container").click(function() {
if (!done) {
$(".obstacle").stop().animate({
left: "-=105%"
}, 10000, "linear");
$(".player").stop().animate({
bottom: "+=100px"
}, {
duration: 300,
complete: function() {
$(".player").animate({
bottom: "0"
}, 800);
},
step: function() {
//Test for collision
hit_list = $(".player").collision(".obstacle");
if (hit_list.length !== 0) {
$(function() {
if (!done) {
$(".container").append("Game Over!");
return false;
}
});
done = true;
}
}
});
}
});
};
$(function() {
$('.container').animator();
});
var interval = null;
$(".obstacle-container").obstacle_generator();
$.fn.obstacle_generator = function() {
interval = setInterval(function() {
$(".obstacle-container").append('<div class="obstacle"></div>');
}, 1000);
};
謝謝你指點我正確的方向。我發現http://gameprogrammingpatterns.com/game-loop.html,我認爲這是繼續前進的道路。 – md1hunox