Bonjour à vous,
Je suis en train de programmer un petit labyrinthe en javascript. Pour l'instant il se crée et s'affiche bien, j'ai mon entrée et ma sortie. Seul problème, je ne sais pas comment faire pour lier une méthode de l'objet labyrinthe à un déplacement clavier. Cette méthode servira ensuite à déplacer un petit personnage grâce aux touches fléchées du clavier.
Par la suite j'aimerais pouvoir, dans ma fonction playerMove, pouvoir faire un this.tab[x][y] pour récupérer des informations sur telle ou telle case de mon objet Laby. Dans mon objet laby, j'ai donc bien ce this.tab[x][y] qui indique toutes les portes ouvertes et fermées pour une coordonnée donnée (utile pour savoir si je peux ou non déplacer mon personnage dans telle ou telle direction). Ce qui n'est pas possible pour l'instant car j'écoute l'objet window pour les déplacements.
Je pense que mon problème serait peut être que je ne passe pas d'argument quand j'appelle monde.playerMove(). C'est pourquoi j'ai rajouté dans la fonction playerMove un if (event). Mais maintenant, j'ai l'impression qu'il fait le test une seule fois et qu'il ne fait pas attention par la suite si j'appuie ou non sur une touche, comme si l'écouteur n'écoutais pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 // extrait de la fonction init function init() { var monde = new Laby(hauteur,largeur); window.onkeydown = monde.playerMove(); // j'ai essayé cette methode window.addEventListener("keypress",monde.playerMove,false); // celle ci aussi } // extrait de la fonction Laby function Laby(x,y) { ... // liaison de la methode de deplacement du personnage this.playerMove = playerMove; } //extrait de playerMove function playerMove(event) { if(event) { switch(event.keyCode) { //Touche fleche haut case 38: if(this.tab[3][2].porteHaut) // exemple { //deplacement du personnage vers le haut accordé } break; //etc ... } } }
Si quelqu'un a une idée j'en serai très heureux, ça fait 2 jours déjà que je ne trouve pas de solution. Peut être est ce un problème de syntaxe. Mon but final est de pouvoir atteindre le this.tab de l'objet Laby au sein de la fonction playerMove().
Merci beaucoup.
Partager