2013-02-27 8 views
0

J'essaie de faire bouger pacman sans utiliser jquery.animation parce que je veux plus de contrôle. donc j'utilise setInterval, mais ça ne marche que parfois. si vous assez rafraîchir, il finira par « cliquer sur » et fonctionne très bien, mais si vous actualisez à nouveau, il ne fonctionnera pas, il est ici http://pacman.townsendwebdd.com si vous voulez regarder, je vous remerciejavascript animation fonctionne parfois

//earlier in the code 
this.moveInterval = setInterval(_this.move, 40, _this); 

move: function(_this) 
{ 
    if(_this.pause)//set to true for now 
     return false; 

    var horz = 0; 
    var vert = 0; 

    var dir = _this.dir; 

    //set horizontal and vertical directions 
    if(dir % 2 == 0) 
     horz = dir - 1; 
    else 
     vert = dir - 2; 

    _this.top += vert; 
    _this.left += horz; 

    $('#pacman').css('top', _this.top); 
    $('#pacman').css('left', _this.left); 
}, 
+0

_mais ça ne marche que de temps en temps._ Il semble "travailler" tout le temps pour moi, en supposant que "travail" signifie que le pacman se déplace vers le bas sur la page. –

+0

oui, vous pouvez utiliser les touches fléchées pour changer de direction, parfois il s'assoit et ouvre et ferme sa bouche, il devrait faire les deux, se déplacer et manger Je pense que cela fonctionne mieux avec des versets de rafraîchissement dur en cliquant sur le bouton de rafraîchissement s'arrête plus souvent) – Gambai

+0

Avons-nous besoin de voir votre code commenté? –

Répondre

1

Je Je ne sais pas si cela va résoudre le problème, mais je recommanderais d'utiliser request animation frame au lieu de setInterval.

L'autre chose que je pense serait le problème (et j'ai été piqué par ceci aussi) est que vous essayez peut-être de démarrer l'animation avant que la page soit complètement chargée. Essayez de mettre votre code dans une fonction et appelez-le avec le onload attribute of the body tag.

Bonne chance!

Griffork.

+0

J'ai tout dans un $ (document) .ready (function() {}); appel. Je vais regarder dans le cadre de l'animation de la demande, merci Je suppose que je devrais probablement utiliser la toile pour cela de toute façon – Gambai

+0

Vous avez marqué ma réponse comme une réponse, avez-vous réellement le faire fonctionner? Votre dernier commentaire donnait l'impression que vous faisiez déjà les choses que j'avais suggérées :). – Griffork

+0

Aussi, dans la ligne 17 de votre main, vous devriez changer la ligne '_this = this;' à 'var _this = this' de sorte que vous ne créez pas une variable globale appelée' _this' et dans votre fonction de déplacement (ligne 67 de pacman.js) vous devez faire une vérification des limites sur dir, parce que si vous appuyez sur un bouton qui n'est pas une touche fléchée alors pacman va voler autour de l'écran XD. – Griffork

Questions connexes