2013-06-04 3 views
1

Я создаю простую игру, и я застрял в настоящее время над чем-то, у меня есть div, называемый «ящик», а изображение внутри него называется «Парашют», когда игра начинается с парашюта, должна двигаться случайным образом внутри границы DIVсделать изображение перемещаться внутри div случайным образом

мой код:

<div id="box"> 


    </div> 

<script type="text/javascript"> 
var ToAppend = "<img src='Parachute.gif' width='25px' height='25px' class='Parachute' /> "; 
     setInterval(function() { 
      for (var i = 1; i <= 2; i++) { 
       $("#box").append(ToAppend); 
       MoveParticles(); 
      } 
     }, 3000); 

     function MoveParticles() { 
       $(".Parachute").each(function() { 
       var x = Math.floor(Math.random() * 400); 
       var y = Math.floor(Math.random() * 400); 

       $(this).animate({ "left": x + "px" }, "slow"); 
       $(this).animate({ "top": y + "px" }, "slow"); 
      }); 
     } 
     <script> 
+0

Я бы сделал изображение внутри холста. Использование изображений на самом деле не рекомендуется. – dotTutorials

ответ

4

Вы, кажется, оживляющий #box, а не .Parachute.

Here's a demo to get you in the right track.

//let's build the chutes 
for (var i = 0; i < 50; ++i) { 
    $('<div/>', { 
     class: 'chute' 
    }).appendTo('#box'); 
} 

//cache a few static values 
var box = $('#box'); 
var width = box.width(); 
var height = box.height(); 
var chute = $('.chute'); 

//our main animation "loop" 

chute.each(function foo() { 

    //generate random values 
    var top = (Math.random() * height) | 0; 
    var left = (Math.random() * width) | 0; 
    var time = Math.random() * (800 - 400) + 400 | 0; 

    //animate 
    //we introduce a random value so that they aren't moving together 
    //after the animation, we call foo for the current element 
    //to animate the current element again 
    $(this).animate({ 
     left: left, 
     top: top 
    }, time, foo); 
}); 
+0

, пожалуйста, проверьте мои изменения, но все еще не работает – Sora

+0

@Sora обновил мой ответ – Joseph

Смежные вопросы