Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Resolu] déplacement d'une image et KeyListener

    3 mai 2010 à 13:08:09

    [Edit] Problème résolu en lancant la méthode tirProjectile dans un autre thread :

    new Thread() {
    				    public void run() {
    				    	tirProjectile();
    				    }
    				}.start();
    


    Bonjour à toutes et à tousles zéros qui s'attarderons sur mon petit problème ^^

    Je réalise un petit jeu de tir (en 2D) en Java et je bute sur le déplacement du projectile que mon personnage tire.

    En réalité j'utilise un keylistener :

    if(evt.getKeyCode()==KeyEvent.VK_SPACE){
    			/* tir du projectile*/
    				isProjo = 1;
    				tirProjectile();
    			}
    


    qui appelle tirProjectile() :

    public void tirProjectile(){
    		posProjoX = positionL;
    		posProjoY = positionH;
    		for(int i =positionL;i< 510; i+=tailleCase){
    			posProjoY = i;
    			repaint();
    
    			try {
    			Thread.sleep(100);
    			System.out.println("j'attend 10ms");
    		        } catch (InterruptedException e) {
    		        // TODO Auto-generated catch block
    			e.printStackTrace();
    		        }
    		}
    	}
    


    et enfin le bout de la méthode paint qui s'occupe d'afficher le projectile :

    if(isProjo == 1){
        System.out.println("affichage du projo");
        g.drawImage(projo,posProjoY,positionH,this);
    }
    


    Donc pour faire simple le projectile est censé se déplacer en ligne droite à partir d'une position (celle du personnage joué).

    Le problème lors de l'execution c'est que la méthode paint() n'est appelée qu'une seule fois. Du coup après le temps d'attente des sleep(), le projectile s'affiche une seule fois en fin de course, c'est à dire devant le personnage au bout de la fenêtre.

    En gros l'animation n'est pas "décomposée" en mouvement, le projectile n'est affichée qu'une seule fois en fin de course.

    Je pose ici mon problème, car j'ai vu qu'il y avait un tuto sur ce point dans la section des cours Java, mais la méthode utilisée est à peu près la même.


    Si quelqu'un à une idée, je suis preneur :)
    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter

    [Resolu] déplacement d'une image et KeyListener

    × 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