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
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);
 
 
}
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
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();
 
}
Si vous avez une idée de comment je pourrais faire, je suis preneur.
merci d'avance pour votre aide.