Bonjour à tous !

Je suis actuellement sur un projet JAVA dans lequel il faut recréer un jeu. Je suis bloqué à une étape assez indispensable : le déplacement de mon petit vaisseau dans l'espace.

J'ai donc une classe Vaisseau :

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package main;
 
import java.awt.Image;
import java.awt.event.KeyEvent;
 
import java.util.ArrayList;
 
import javax.swing.ImageIcon;
 
public class Vaisseau {
 
	private String vaisseau = "vaisseau.png";
 
	// Les variables de déplacement
	private int dx;
	private int dy;
 
	// Les positions
	private int x;
	private int y;
 
	// L'image
	private Image image;
 
	// Notre liste de missiles
	private ArrayList<Missile> missiles;
 
	// La taille du vaisseau
	private final int vaisseau_SIZE = 20;
 
 
	/**********************************************************************************************/
	/* LE CONSTRUCTEUR */
	public Vaisseau() {
 
		// On récupère le vaisseau
		ImageIcon ii = new ImageIcon(this.getClass().getResource(vaisseau));
		image = ii.getImage();
 
		// On initialise le vaisseau
		missiles = new ArrayList<Missile>();
 
		// La position de départ
		x = 300;
		y = 220;
	}
 
	/**********************************************************************************************/
	/* LES GETTEURS */
 
	public int getX() {
		return x;
	}
 
	public int getY() {
		return y;
	}
 
	public Image getImage() {
		return image;
	}
 
	public ArrayList<Missile> getMissiles() {
		return missiles;
	}
 
	/**********************************************************************************************/
 
	/*
	 * Lorsque l'on appuie sur une touche
	 */
	public void keyPressed(KeyEvent e) {
 
		// On récupère la touche en question
		int key = e.getKeyCode();
 
		if (key == KeyEvent.VK_SPACE) {
			fire();
		}
 
		if (key == KeyEvent.VK_LEFT) {
			dx = -1;
		}
 
		if (key == KeyEvent.VK_RIGHT) {
			dx = 1;
		}
 
		if (key == KeyEvent.VK_UP) {
			dy = -1;
		}
 
		if (key == KeyEvent.VK_DOWN) {
			dy = 1;
		}
	}
 
	public void keyReleased(KeyEvent e) {
		int key = e.getKeyCode();
 
		if (key == KeyEvent.VK_LEFT) {
			dx = 0;
		}
 
		if (key == KeyEvent.VK_RIGHT) {
			dx = 0;
		}
 
		if (key == KeyEvent.VK_UP) {
			dy = 0;
		}
 
		if (key == KeyEvent.VK_DOWN) {
			dy = 0;
		}
	}
 
	public void fire() {
 
		// vaisseau_SIZE = taille en pixel de l'avion
		// On fait partir le missile de la position actuelle + taille du
		// vaisseau
		// On fait partir le missile de la taille du vaisseau / 2 pour être au
		// milieu
		missiles.add(new Missile(x + vaisseau_SIZE / 2,y));
	}
 
	public void move() {
 
		// La position actuelle devient celle définie par la touche appuyée
		x += dx;
		y += dy;
	}
 
}
Et je souhaiterais qu'à chaque fois qu'une personne appuie sur « left » ou « right », cela puisse faire une rotation au vaisseau, et, par la suite, que le déplacement se fasse en fonction de cela.

Si quelqu'un a une idée ?

Merci d'avance !