Bonjour,
Je fais un petit jeu en c mais je n'arrive pas à afficher un tir.
Je veux tirer, voir le déplacement du tir puis le réinitialiser.
Pour l'instant quand je tir, je crois que c'est tout de suite réinitialiser ou du moins, je ne vois pas le déplacement.
voici mon code :
pour l'affichage du terrain
pour ma boucle:
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 void afficheTerain(WINDOW *win, Jeu *jeu) { int i,j; wclear(win); //on prend un vaisseau joueur VaisseauJoueur *V = jeuGetVaissJ(jeu); //on prend le terrain Terrain *ter = jeuGetTerrain(jeu); //on prend le tir TirJoueur *TJ = jeuGetTirJ(jeu); //affichage du terrain for(i=0;i < ter->dimy ;i++) { for(j=0;j<ter->dimx ;j++) { mvwprintw(win,i,j,"%c",ter->tab[i][j]); } } //on affiche un vaisseau joueur sur le terrain mvwprintw( win, V->y, V->x, V->image); //on affiche le tir devant le vaisseau, c'est son point de départ mvwprintw( win, TJ->x, TJ->y, TJ->imageTir); }
Si vous avez une idée de comment je pourrais faire, je suis preneur.
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 void ncursBoucle(Jeu *jeu) { WINDOW *win; int c; int i, j; int continue_boucle; clock_t temps_actu, temps_prec=0; initscr(); clear(); noecho(); cbreak(); win = newwin( 12, 70, 10, 5 ); keypad(win, TRUE); halfdelay( 1 ); continue_boucle = 1; do { afficheTerain(win , jeu); c = wgetch(win); //déplacement du vaisseau joueur switch(c) { case KEY_LEFT: jeu->jvaissJ.x-=2; jeu->jtirJ.y-=2; break; case KEY_RIGHT: jeu->jvaissJ.x+=2; jeu->jtirJ.y+=2; break; case KEY_UP: jeu->jvaissJ.y-=2; jeu->jtirJ.x-=2; break; case KEY_DOWN: jeu->jvaissJ.y++; jeu->jtirJ.x++; break; case 32: /* ESPACE */ for(i=jeu->jtirJ.y; i<jeu->jter.dimx; i++) { jeu->jtirJ.y++; } //on réinitialise le tir initTir( &(jeu->jtirJ), &(jeu->jvaissJ), &(jeu->jter)); break; case 27: /* ECHAP */ continue_boucle = 0; break; } } while (continue_boucle==1); endwin(); }
merci d'avance pour votre aide.
Partager