0
這是代碼:jQuery的遊戲人物動作系統
$(document).ready(function(){
var mUp=false;
var mLeft=false;
var mRight=false;
function movement(){
$(function(){
if(mUp){
$('.user').animate({
bottom: '+=120'
},{
duration: 50,
easing: 'linear',
complete: function() {
$('.user').animate({
bottom: '-=120'
},{
duration: 150,
easing: 'linear',
complete: function() {
mUp=false;
if(!mRight&&!mLeft){
$('.user').stop();
}
}
}).dequeue();
}
}).dequeue();
}
if(mRight){
$('.user').animate({
left: '+=1000'
},{
duration: 1000,
easing: 'linear',
}).dequeue();
}
if(mLeft){
$('.user').animate({
left: '-=1000'
},{
duration: 1000,
easing: 'linear',
}).dequeue();
}
});
}
$(document).keydown(function(e){
var curKey=e.keyCode;
if(curKey==39){
console.log('right+');
if(!mRight){
mRight=true;
movement();
}
}
if(curKey==37){
if(!mLeft){
mLeft=true;
movement();
}
}
if(curKey==38){
console.log('up+');
if(!mUp){
mUp=true;
movement();
}
}
});
$(document).keyup(function(e){
var curKey=e.keyCode;
if(curKey==39){
console.log('right-');
if(!mUp){
$('.user').stop();
}
mRight=false;
}
if(curKey==37){
console.log('left-');
if(!mUp){
$('.user').stop();
}
mLeft=false;
}
if(curKey==38){
console.log('up-');
}
});
});
我正在爲一個基於jQuery的遊戲簡單的運動系統。我可以左右移動角色並跳轉。在跳轉動畫仍在進行的過程中,嘗試向左或向右移動角色時,我的問題就開始了。如果我在已經向左或向右移動的情況下跳轉,但是當我第一次跳轉時,當跳轉動畫仍然有效時,嘗試向左或向右移動它有點瘋狂。
的jsfiddle:CLICK
我知道你不希望這種行爲,但我喜歡它(就像攀登),我會說http://geekwhisperin.files.wordpress.com/2009/09/ bug-vs-feature.jpg – 2014-10-09 16:19:59
在發佈之前,我想到你說的是什麼,但是..行爲有它自己的想法。從外觀上看,我堅持不懈。 :) – user1885099 2014-10-09 16:39:18