Bonjour,
Je dois faire un jeu qui s' appelle Envahisseur de l'espace (le jeu d arcade). En faite j' arrive à afficher un missile du vaisseau joueur sauf que je voudrai voir le déplacement du missile parce que quand je fais un tire le missile se positionne instantanément à la position final, je pense que c'est à cause du while c'est pour ça que je voudrais réduire la vitesse du while pour que le déplacement du missile soit visible par l œil humain mais il faut que le missile bouge en même temps que les vaisseaux ennemies par exemple le mouvement des missiles ne doivent pas bloquer les mouvements des autres vaisseaux, j ai pensé à utiliser sleep,usleep,nanosleep mais le problème je pense que ça va bloquer les autres mouvements des vaisseaux et je n ai pas le droit d utiliser de thread. Mais je n'arrive pas et je voudrai votre aide svp.
Voici le code : getTime() est une fonction qui contient une structure timeval et un gettimeofday qui a pour argument la structure et retourne un temps.
Merci d' avance
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 struct pollfd fds[1]; fds[0].fd = STDIN_FILENO; fds[0].events = POLLIN; int v = 1200; double oldV =v; while(1){ clear(); print_map(carte); double bPoll= getTime(); tou = poll(fds, 1, v); t[0] = tou; if(t[0] == 0){ //mouvements des vaisseaux ennemies qui bougent tous seul en boucle }else read(0, tou, 1); if (t[0] == 32){ while(i > 75){// ici mon problème if(upRock(carte,i,j,vaisseaux[1]) == 0){ // i et j sont les positions de départ du missile et upRock va modifier la position du missile dans la carte i--; et affiche au fur à mesure les nouvelles position du missile grâce print_map(carte) } } } double aPoll= getTime(); if(t[0] != 0){ v = v - (aPoll-bPoll); }else{ v = oldV; } }.
Partager