2012-03-27 38 views
2

我試圖建立一個像太空侵略者一樣的遊戲(因爲我只在5天前開始編碼),如果鞋子碰到殭屍,殭屍會消失並重新出現在屏幕的頂部(再次下降)。我似乎無法使殭屍回到頂部(它們保持在動畫的最低點)如何重新啓動動畫中的循環?

下面是碰撞試驗:

function zombietestCollision(position1, size1, position2, size2) { 
if (((position1.left + size1.width) > position2.left) && 
    ((position1.top + size1.height) > position2.top) && 
    ((position2.left + size2.width) > position1.left) && 
    ((position2.top + size2.height) > position1.top)) { 

     function loop() { 
      movedown($zombie); 
      moveup($zombie); 
     }; 
     $(function zombieloop() { 
      setInterval(loop, 1); 
     }); 
} 
} 

我已經涵蓋這個測試在我的殭屍向下移動中

// down movement of the zombies 
function movedown($zombie) {  
$zombie.animate({ 
    'left': 300, 
}, { 
     duration:5000, 
     step:function(){ 

      $.each($("#zombie"), function(index,zombie) { 

       var $zombie = $(zombie); 
       var $shoe = $("#shoe"); 

       var shoeSize = { 
        height: $shoe.height(), 
        width : $shoe.width() 
       }; 

       var zombieSize = { 
        height: $zombie.height(), 
        width : $zombie.width() 
       }; 

       zombietestCollision($shoe.position(), shoeSize, $zombie.position(), zombieSize); 


      }); 
} 

當我運行這個時,屏幕只是空白。我做了什麼正確的? 如果需要這裏是完整的代碼:http://jsfiddle.net/JKd9K/7/

對不起,但我完全是新的編程,所以我很難理解哪部分我做錯了。乾杯!

回答

0

您需要小心如何關閉功能。看看這個http://jsfiddle.net/JKd9K/2/

你下移的功能應該是這樣的

function movedown($zombie) { 
    $zombie.animate({ 
     'left': 300 
    }, { 
     duration: 5000, 
     step: function() { 
      $.each($("#zombie"), function(index, zombie) { 
       var $zombie = $(zombie); 
       var $shoe = $("#shoe"); 
       var shoeSize = { 
        height: $shoe.height(), 
        width: $shoe.width() 
       }; 
       var zombieSize = { 
        height: $zombie.height(), 
        width: $zombie.width() 
       }; 
       zombietestCollision(
        $shoe.position(), 
        shoeSize, 
        $zombie.position(), 
        zombieSize); 
      }); 
     } 
    }); 
} 

注意,有一羣在年底額外的括號。

+0

哎呀,是的,我構建的代碼非常糟糕。感謝James現在我添加了這些支架,上面描述的情況依然如此 - 「我似乎無法讓殭屍回到頂部(他們仍然處於動畫的最低點)」 – Agatha 2012-03-27 02:25:51

+0

好吧,你的代碼中有一些問題。您正試圖在您的jQuery對象上使用不存在的轉換方法。您所包含的轉換插件不會被小提琴加載。 – 2012-03-27 02:27:52

+0

哦,是的,我在我的代碼中,小提琴是一個較舊的版本,這裏是更新的:[鏈接](http://jsfiddle.net/JKd9K/3/) – Agatha 2012-03-27 02:31:33