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 :
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.
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; } }
Si quelqu'un a une idée ?
Merci d'avance !
Partager