Bonjour à tous,
pour ma 2ème année de DUT, je dois réaliser un jeu 2D (puis 3D par la suite) en POO. J'ai donc commencé à développer une partie de ce jeu très simple, mais je bloque à pas mal d'endroits malheureusement, je ne suis pas un expert dans ce domaine, de ce fait je viens trouver un peu d'aides auprès de cette communauté pour essayer de me débloquer et avancer durant ces vacances!
Voici mais soucis, pour placer le contexte, il s'agit donc d'un jeu 2D de plateforme qui se joue en scrolling horizontal, un simple Mr Cornichon qui doit esquiver des ennemis, sauter d'une plateforme à une autre et éviter les trous pour atteindre le bout du niveau (oui, si j'arrive à finir un niveau entier sans aucun bug ce sera un grand pas pour moi).
J'ai 4 classes : Game, Personnage, Monstre et Level.
Je suis désolé mais j'ai une tonne de question, je tente de chercher tous les jours jusqu'à pas d'heures, mais j'ai vraiment beaucoup de mal et peu de temps =/ ...
* Dans Monstre, j'ai un soucis avec ma méthode allerretour, le monstre ne fonctionne que pour l'aller, mais une fois la limite de l'aller dépassée, il ne revient pas en arrière et pas moyen de trouver pourquoi... :
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 public class Monstre { private int x=0; private int y=0; private int posx=250; private int posy=200; private int t=0; private boolean gauche = false; private int Vx=0; Image imgD; Image imgG; public Monstre(int x, int y) { super(); this.x = x; this.y = y; this.Vx = posx + Vx; this.t=0; try { imgD = ImageIO.read(new File("ennemiD.png")); imgG = ImageIO.read(new File("ennemiG.png")); } catch (IOException e) { e.printStackTrace(); } } public void paint(Graphics g) { if (gauche){ g.drawImage(imgG,posx,posy,null); } else { g.drawImage(imgD,posx,posy,null); } } public void droite() { Vx = +5; gauche = false; } public void gauche() { Vx = -5; gauche = true; } public void allerretour(){ t=(t+1) % 100; if (t<=200){ droite(); } else { gauche(); } } public void act() { allerretour(); posx = posx+Vx; } }
* Je ne trouve pas aussi le comment afficher des images différentes dans un tableau, et afficher ces images aléatoirement pour tracer le level (des blocs d'images qui font toutes 50x50). Ma méthode actuelle n'est pas terrible car je vais utiliser une dizaine d'images :
Voila, je vous serais vraiment reconnaissant si vous pouviez m'aider =) (et désolé pour la longueur du message, j'ai tenté de faire aussi court que possible)
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 public class Level { int [][] t; Image img; Image one; Image two; Image three; public Level() { super(); int tab [][] = {{1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0}, {1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0}}; t = tab; try { img = ImageIO.read(new File("Decor.png")); one = ImageIO.read(new File("1.png")); two = ImageIO.read(new File("2.png")); three = ImageIO.read(new File("3.png")); } catch (IOException e) { e.printStackTrace(); } } public void paint(Graphics g) { g.drawImage(img,0,0,null); for(int i = 0 ; i<t.length ; ++i) { for(int j = 0 ; j<t[i].length ; ++j) { if(t[i][j] == 1){ //g.fillRect(j*50, i*50, 50, 50); g.drawImage(one, j*50, i*50, 50, 50, null); } else if(t[i][j] == 10){ g.drawImage(two, j*50, i*50, 50, 50, null); } else if(t[i][j] == 11){ g.drawImage(three, j*50, i*50, 50, 50, null); } } } } }
Partager