Derniers sujets






Utiliser le clavier dans un applet en Java

Voir le sujet précédent Voir le sujet suivant Aller en bas

Utiliser le clavier dans un applet en Java

Message  Zepalkia le Mar 30 Aoû - 13:24

Il est probable, si vous essayez de vous lancer dans la création d'un petit jeu vidéo en java par exemple, que vous vous soyez déjà demandé comment réussir à faire reconnaître un clavier à votre applet, et bien il y a une méthode toute simple (plusieurs en faite, mais je vais vous en proposer une) qui vous permet de demander à votre applet de faire n'importe quoi ds que vous appuyez sur une touche précise.

Avant de commencer, soyez certain de comprendre comment fonctionne la commande "if", si ce n'est pas le cas, allez lire >> ce tutoriel << avant de revenir




1)
Avant toutes choses, il va falloir ajouter, dans votre applet directement, un certain nombre de choses.
Tout d'abord, dans la liste des bibliothèques qui se trouvent en haut de votre applet (qui commencent par "import", rajoutez cette ligne de code :
Code:
import java.awt.event.*;

Pas besoin d'approfondir, c'est simplement une bibliothèque à importer sans laquelle notre méthode ne fonctionne pas.

2)
Ensuite, après cette liste de bibliothèques, vous avez le début de votre applet qui devrais ressembler à peu prêt à ça :
Code:
public class aaaa extends JApplet
(aaaa étant le nom de votre applet)

faite un espace après tout ça, et rajoutez y ceci :
Code:
implements KeyListener

Avec cette étape vous demandez à votre applet d'ajouter un "KeyListener", un "écouteur de clef" traduit littéralement, à savoir un lecteur de touches de clavier.
Ne compilez pas tous de suite, ça ne fonctionnera pas encore.

3)
Maintenant, vous devriez avoir votre init quelque part sous cette forme :
Code:
public void init()
    {
       
    }

Ajoutez-y, entre les accolades, le bout de code suivant :
Code:
addKeyListener(this);

Avec ça, vous avez précisé le fait que vous voulez insérer un lecteur de clavier supplémentaire, directement dans votre applet.
4)
On se rapproche de la fin de l’installation, il vous suffit maintenant de rajouter les trois void suivantes :
Code:

public void keyPressed(KeyEvent evt)
    {
        repaint();
    }
    public void keyReleased(KeyEvent evt){}
    public void keyTyped(KeyEvent evt){}

Je ne vous parlerai que d'une seule parmi les trois (afin de lire l'appui d'une touche) mais vous devez impérativement mettre les 3, sans quoi votre applet ne pourras pas être compilé.
Une fois ceci fait, compilez votre projet. Ça marche ? Passez à l'étape suivante, dans le cas contraire relisez bien le code que vous avez inséré (soyez sur de la moindre majuscule et du moindre espace) et soyez certain d'avoir bien tous mis et au bon endroit.




Très bien, maintenant votre applet comprend quand vous appuyez sur une touche ! Sisi... enfin... là il n'en a pas l'air puisqu'il ne fait rien, mais je vous rappelle qu'un ordinateur est totalement idiot(ou très prudent ça dépend de votre point de vue), et qu'il faut tout lui dire pour qu'il le fasse, du coup il faut aussi lui dire quoi faire quand vous appuyez sur une touche précise.

Pour ce faire, nous allons utiliser la partie "keyPressed" que je vous ai demandé d'ajouter avant, les parties "keyReleased" et "keyTyped" sont un peu différentes et je ne vous en parlerai pas ici.

La partie "keyPressed" donc, celle avec le "repaint();" normalement.
Imaginons que nous voulons changer une variable x, en fonction de la touche appuyée. Ceci permet, par exemple, de déplacer directement des objets (avec la variable x comme coordonnée x d'un objet).

Voilà comment procéder, déjà il nous faut décider de la touche que nous voulons utiliser dans un premier temps, en général la barre d'espace ou les touches fléchées si vous programmez un jeu.

Dans le "keyPressed donc", insérez le code suivant :
Code:
if(evt.getKeyCode() == KeyEvent.VK_X)
{
}
Attention, le "X" est à changer, il représente la touche que vous voulez utiliser. Il vous suffit (pour la plupart des touches) d'écrire leur nom en majuscule après le ".VK_".
Par exemple, "VK_SPACE" gère la barre d'espace, "VK_F2" gère la touche F2, "VK_A" gère la touche a etc...
Notez que pour les touches directionnelles, se sont leur sens qu'il faut mettre, donc par exemple "VK_LEFT" pour celle de gauche, "UP" pour celle du haut, "DOWN" pour celle du bas et "RIGHT" pour celle de droite.

Prenons un exemple avec la barre d'espace, cela nous donne :
Code:
if(evt.getKeyCode() == KeyEvent.VK_SPACE)
{
}

Seulement voilà, pour le moment cela ne fais toujours rien... et bien là c'est à vous de faire ce que vous voulez justement ! Si tous se compile sans problème, sans erreur, et que l'applet se lance c'est que tout est bon et qu'il n'y a pas de fautes, maintenant il vous suffit d'utiliser cette méthode dans votre projet.
En effet, le code avec le nom de la touche est un "if", voilà pourquoi il faut savoir le maîtriser, ce qui vous autorise donc à, comme avec n'importe quel if, demander à votre programme de faire tous ce que vous voulez.

Si appuyer sur la touche de droite déplace une image de 20 pixels vers la droite par exemple, ou n'importe quoi d'autre. La je ne peut que difficilement vous donner des exemples, tout repose sur votre imagination et votre projet, ceci dit si vous avez un soucis, vous voulez des exemples ou de l'aide, comme d'habitude, n'hésitez pas à cliquez sur la petite enveloppe en haut à droite afin de m’envoyer un mail, je me ferais un plaisir de vous aider

Bonne chance dans votre projet, j'espère que ce tutoriel vous aura été un peu utile quand même et est compréhensible.

_________________







Zepalkia
Admin
Admin

Avertissement : aucun avertissement
Messages : 883
Date d'inscription : 23/12/2009
Age : 24

http://sos-internautes.forumactif.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum