2010-07-22 66 views
0

http://davzy.com/gameA/是測試我在做什麼的URL,我所有的代碼也在那裏。字符在移動時如同嵌入網格一樣移動?

我希望藍色盒子的運動是流動的,不會像催促進入網格那麼淫蕩,但我希望他運動得非常快。我不知道如何完成這一點。我寫了一個gameSpeed變量,但是當它增加時,藍色盒子的移動變得更加波濤洶涌。

任何幫助,將不勝感激!

回答

4

由於您已經在使用jQuery,因此您可以利用jQuery的動畫支持。在controls.js,替換:

$('#objUserCore').css('left',$('#objUserCore').position().left + (gameSpeed * playerSpeed)); 

有:

$('#objUserCore').animate({ 'left': '+=' + (gameSpeed * playerSpeed) }); 

jQuery將分拆適當的計時器從而平穩且高效動畫的精靈。 '+ ='語法告訴jQuery從其當前值開始對該值進行動畫處理,並添加指定的差異。您可以在jQuery documentation中找到詳細信息。

爲了讓動畫效果在所有四個方向去,替換所有四個if語句中controls.js

if (event.keyCode == '39') 
    $('#objUserCore').animate({ 'left': '+=' + (gameSpeed * playerSpeed) }); 
if (event.keyCode == '37') 
    $('#objUserCore').animate({ 'left': '-=' + (gameSpeed * playerSpeed) }); 
if (event.keyCode == '38') 
    $('#objUserCore').animate({ 'top': '-=' + (gameSpeed * playerSpeed) }); 
if (event.keyCode == '40') 
    $('#objUserCore').animate({ 'top': '+=' + (gameSpeed * playerSpeed) }); 
+0

http://davzy.com/gameA/這使得它更加順暢,但它仍然捕捉到網格,然後它繼續移動,如果按住。 – Macmee 2010-07-22 14:15:39

1

你應該有一個計時器,每隔10ms左右關閉一次。

有一個變量speedX和speedY。定時器啓動時,將速度添加到該位置。按方向鍵時,增加或減少速度。即如果按下左鍵,則speedX -= 1

您會注意到,如果按住當前示例中的箭頭鍵,它不會看起來不平坦。如果您按下一次鍵,它只是生澀。