Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gestion d'entrées clavier

    21 septembre 2016 à 15:56:24

    Bonjour, je suis actuellement en train de coder une application Pong très basique, mais je suis face à un problème : J'ai une classe dédiée aux entrées clavier (KeyAdapter) qui ne présente aucun problème de compilation, mais qui n’entraîne aucune action. J'aimerais avoir votre avis sur ce code. 

    Merci d'avance 

    package com.pongevolution.main;
    
    import java.awt.event.KeyAdapter;
    
    import java.awt.event.KeyEvent;
    
    public class KeyInput extends KeyAdapter {
    	
    	private Handler handler;
    	
    	public KeyInput(Handler handler){
    		this.handler = handler;
    	}
    	
    	public void keyPressed(KeyEvent e){
    		int key = e.getKeyCode();
    		
    		for(int i = 0; i < handler.object.size(); i++){
    			GameObject tempObject = handler.object.get(i);
    			
    			if(tempObject.getId() == ID.LeftRectangle){
    				//KeyEvent LeftRectangle
    				if(key == KeyEvent.VK_Z) tempObject.setY(tempObject.getY() - 1);				
    				if(key == KeyEvent.VK_S) tempObject.setY(tempObject.getY() + 1);
    				
    			}
    			
    			if(tempObject.getId() == ID.RightRectangle){
    				//KeyEvent RightRectangle
    				if(key == KeyEvent.VK_UP) tempObject.setY(tempObject.getY() - 1);
    				if(key == KeyEvent.VK_DOWN) tempObject.setY(tempObject.getY() + 1);
    				
    			}
    	
    			}
    		}
    		
    	
    	public void keyReleased(KeyEvent e){
    		int key = e.getKeyCode();
    	}
    }
    



    • Partager sur Facebook
    • Partager sur Twitter
      21 septembre 2016 à 17:36:13

      Bonjour,

      As-tu ajouté ton KeyInput à un élément de ton interface (comme une fenêtre) ?

      Si oui, il faut aussi qu'elle ait le focus (méthode requestFocusInWindow).

      • Partager sur Facebook
      • Partager sur Twitter
        21 septembre 2016 à 17:38:56

        Brubru, y'a-t-il une classe particulière dans laquelle je dois entrer cette méthode ? J'ai une classe spécifique pour mes objets, une classe pour tout ce qui va gérer mes objets, et ma classe principale dans laquelle j'initialise une nouvelle instance de mon constructeur général (Pong) ?

        • Partager sur Facebook
        • Partager sur Twitter
          21 septembre 2016 à 17:50:46

          Tu as bien une fneêtre dans laquelle le jeu se déroule ?

          • Partager sur Facebook
          • Partager sur Twitter
            21 septembre 2016 à 21:09:51

            Oui d'accord je vois ce que tu veux dire mais même avec cette méthode je n'ai aucune réaction
            • Partager sur Facebook
            • Partager sur Twitter
              22 septembre 2016 à 7:19:45

              Tu peux montrer le code de ta fenêtre ?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                22 septembre 2016 à 8:50:42

                Bonjour,

                Sais-tu si tu rentres au moins dans la fonction "keyPressed"?

                As-tu bien ajouté le listener à ta fenêtre?

                fenêtre.addKeyAdapter(new KeyInput());



                -
                Edité par Anonyme 22 septembre 2016 à 8:50:54

                • Partager sur Facebook
                • Partager sur Twitter

                Gestion d'entrées clavier

                × 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