Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conception d'un jeux en javascript

besoin d'aide !

    15 janvier 2011 à 13:51:03

    Bonjour,

    Le jeu en question est présenté ici : http://www.siteduzero.com/forum-83-602 [...] ux-mario.html

    Et en démonstration ici : http://phpixel.fr/experience/mario/


    Je suis arrivé a un stade ou je bloque sur un point.
    Je m'explique : en testant vous remarquerez qu'il n'est pas possible de cumuler deux déplacements. Par exemple lorsque l'on se déplace à gauche avec le touche Q et que l'on saute en même temps, avec la touche L, le déplacement de gauche et annuler au profit du saut.
    On ne peut donc sauter en direction de la gauche ou de la droite, mais seulement bien à la vertical, ce qui est assez embêtant.

    Ce comportement est logique si l'on regarde le code lié à la détection du clavier. Il y a forcément annulation, je ne vois pas trop comment faire autrement :

    document.onkeypress = controle;
    
    function controle(keyStroke){
    	code_eventChooser = (!document.all) ? keyStroke.which : event.keyCode; 
    	touche = String.fromCharCode(code_eventChooser).toLowerCase();
    	// Déplacement de Mario à gauche
    	if(touche == 's' && mario.posx < container.width-mario.width){
    		mario.posx = mario.posx+10;
    		mario.style.left = mario.posx+"px";
    	}
    	// Déplacement de Mario à droite
    	if(touche == 'q' && mario.posx > 0){
    		mario.posx = mario.posx-10;
    		mario.style.left = mario.posx+"px";
    	}
    	// TEST : saut
    	if(touche == 'l' && mario.statutSaut == 0){
    		mario.statutSaut = 1;
    		animeSautMario();
    	}
    	// Lancement du projectile
    	if(touche == 'm' && joueur.projectile > 0 && projectile.statut == 0){
    		// Déduction du stock projectiles
    		joueur.projectile--;
    		// Mise à jour du statut projectile (en déplacement)
    		projectile.statut = 1;
    		// Appel de la fonction d'annimation du projectile
    		animeProjectile();
    	}
    	// La position du projectile est identique à Mario lorsqu'il est à l'arrêt
    	if(projectile.statut == 0){
    		projectile.posx = mario.posx;
    		projectile.style.left = projectile.posx+"px";
    	}
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2011 à 14:06:03

      Il te faut gerer le mouse up et le mouse down séparément pour savoir qu'est ce qui est enfoncé.
      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2011 à 14:30:29

        mouse up & mouse down, il me semble que c'est plutôt en rapport avec la souris ?
        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2011 à 15:05:06

          Je t'invite à lire ce sujet :

          http://www.siteduzero.com/forum-83-580 [...] -touches.html

          (matheod voulait bien sûr parler de keyup et keydown)
          • Partager sur Facebook
          • Partager sur Twitter
            15 janvier 2011 à 15:16:29

            Merci, après lecture du topic, je vois le principe.
            • Partager sur Facebook
            • Partager sur Twitter
              15 janvier 2011 à 15:24:50

              Pense à mettre ton sujet en résolu, s'il l'est, à l'aide du bouton approprié ;)
              • Partager sur Facebook
              • Partager sur Twitter

              Conception d'un jeux en javascript

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown