[Développement] Multiplayers game with jQuery / Jeu multijoueur avec jQuery
[English version]
[Go to the code]
Bonjour à tous,
Je travail actuellement sur un module de jeu en ligne multijoueur par navigateur utilisant jQuery, vous pouvez voir le concept du jeu et son état d'avancement ici, il est fonctionnel : http://alineo.be/jeux/
Mais j'ai toutefois besoin de votre aide car je n'arrive pas à dompter une des fonction "timer" everyTime(); malgré toutes les heures de recherche dans des tutoriels.
En effet pour le moment le rafraîchissement du div "jeux" avec jQ se fait toutes les 5 secondes, c'est fonctionnel mais pas très pratique lors du déplacement d'une pièce de jeu pendant plus de 5 sec, en effet lors du chargement jQ la pièce que l'on tient dans les mains retourne à sa position. J'ai donc demandé à jQ de stopper la fonction "everyTime();" lorsque je transporte un des pions.
Et c'est là que je suis bloqué, je n'arrive pas à relancer ma fonction everyTime(); après l'avoir arrêtée. Voici mon code :
Javascript:
- // JavaScript Document
$(document).ready(function() {
$(document).everyTime(5000, 'time', function() {
$('#jeux').load('content.php', function() {
$(".objet").draggable({
stack: '.objet',
start: function(event, ui) {
// Show start dragged position of image.
var Startpos = $(this).position();
$("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
}, drag: function(event, ui) {
},
// Find position where image is dropped.
stop: function(event, ui) {
$(document).stopTime('time').stop();
// Show dropped position.
var Stoppos = $(this).position();
var id_objet = $(this).attr("id")
var x = Stoppos.left;
var y = Stoppos.top;
$("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
$.get("mouvement.php",{posx:x, posy:y, objet:id_objet},
function success(data){ // au succès on renvoie le résultat de la requête
$("#send").html(data);
})
}
});
});
});
});
index.php
- ...
- <div id="jeux" >
<p style="background-color:#FFFFFF; padding:5px; width:300px; font-weight:bold; ">Chargement de content.php avec jQuery...</p>
</div>
content.php
- <div id="table">
<?php foreach($les_objets as $objet){?>
<img style="position:absolute; left:<?php echo $objet['x']; ?>px; top:<?php echo $objet['y']; ?>px;" class="objet" id="<?php echo $objet['id']; ?>" width="<?php echo $objet['largeur']; ?>" height="<?php echo $objet['hauteur']; ?>" src="images/<?php echo $objet['face_a']; ?>" alt="" title="<?php echo $objet['title']; ?>" />
<?php }; ?>
</div>
code source de la page en HTML d'un objet
- <div id="jeux" >
- <div id="table">
- <img width="93" height="93" title="pion de jeu dame" alt="" src="images/pion_dame.png" id="2" class="objet ui-draggable" style="position: absolute; left: 335px; top: 606px; z-index: 0;">
- </div>
- </div>
[English]
Hello everyone,
I am currently working on a module online multiplayer game browser using jQuery, you can see the concept of the game and his status here, it is functional: http://alineo.be/jeux/
But however, I need your help because I can not subdue a function of "timer" Everytime (); despite all the hours of research in tutorials.
Indeed yet refreshing the div "games" with QJ is every five seconds, it is functional but not very practical when moving a game piece for more than 5 seconds, in fact loading JQ the piece is held in the hands back to his position. So I asked JQ stop the "Everytime ();" when I carry one of the pawns.
And that's where I'm stuck, I can not restart everytime my function () after having stopped. Here is my code:
[go to the code]