Bonjour, dans mon jeu toute les 20 millisecondes je dois faire les tests de collisions ; ma question est la suivante : pour plus de performance est-ce qu'il est préférable de créer une struct OffSet par exemple ou je déclare une fois pour toutes mes variables ou bien est-ce qu'il est préférable de recrée toutes les 20 millisecondes mes variables dans mes différente fonctions ?
Est-ce mieux de faire :
Ou bien la 2eme solution :
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 typedef struct OffSet { int XMin1; int XMax1; int YMin1; int YMax1; int XMin2; int XMax2; int YMin2; int YMax2; int vx, vy; }OffSet; ../.. void move_ball(Sprites* S,dataImageScr* D,Clash_SplitScr* CS,InitSdl *A,OffSet* O) { int i=0; O->XMin2=D->ship.x; O->XMax2=D->ship.x+S->ShipW; O->YMin2=D->ship.y; O->YMax2=D->ship.y+S->ShipH; for(i=0;i<D->NbBallScr;i++) { O->XMin1=D->ball[i]->x; O->YMin1=D->ball[i]->y; O->XMax1=D->ball[i]->x+S->BallW; O->YMax1=D->ball[i]->y+S->BallH; O->vx=D->ball[i]->vx; O->vy=D->ball[i]->vy; D->ball[i]->x += O->vx; D->ball[i]->y += O->vy; clash_splitScr(O->XMin1,O->XMax1,O->YMin1,O->YMax1,CS,i); clash_ballEdgesScr(S,D,A,i); clash_ShipBall(O->XMin1, O->XMax1, O->YMax1, O->XMin2, O->XMax2, O->YMin2, O->YMax2, O->vx, O->vy,i,S,D); } }
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 void move_ball(Sprites* S,dataImageScr* D,Clash_SplitScr* CS,InitSdl *A) { int i=0; int vx, vy; int XMin1,YMin1,XMax1,YMax1; int XMin2=D->ship.x; int XMax2=D->ship.x+S->ShipW; int YMin2=D->ship.y; int YMax2=D->ship.y+S->ShipH; for(i=0;i<D->NbBallScr;i++) { XMin1=D->ball[i]->x; YMin1=D->ball[i]->y; XMax1=D->ball[i]->x+S->BallW; YMax1=D->ball[i]->y+S->BallH; vx=D->ball[i]->vx; vy=D->ball[i]->vy; D->ball[i]->x += vx; D->ball[i]->y += vy; clash_splitScr(XMin1,XMax1,YMin1,YMax1,CS,i); clash_ballEdgesScr(S,D,A,i); clash_ShipBall(XMin1,XMax1,YMax1, XMin2,XMax2,YMin2,YMax2, vx,vy,i,S,D); } }
Partager