Bonjour à tous.
Pour ceux qui ne le savent pas encore, je développe un petit mario like à l'aide de la bibliothèque SDL2 et du tutoriel sur le TileMapping :
http://jeux.developpez.com/tutoriels...tion-generale/.
J'en suis à la partie sur les collisions et je ne saisis pas bien l'utilité des macros dans le fichier fsprite.c :
http://jeux.developpez.com/tutoriels...sonnage/#LVI-B.
Mon code à moi est celui ci :
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #define SGN(X) (((X)==0)?(0):(((X)<0)?(-1):(1))) #define ABS(X) ((((X)<0)?(-(X)):(X)))
Et cette fonction appelle ces 2 macros :
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void Affine(SDL_Rect &perso, SDL_Rect* mur, int &vx, int &vy) { int i; for (i = 0; i<ABS(vx); i++) { if (EssaiDeplacement(perso, mur, SGN(vx), 0) == 0) break; } for (i = 0; i<ABS(vy); i++) { if (EssaiDeplacement(perso, mur, 0, SGN(vy)) == 0) break; } }
Je voudrais juste savoir pourquoi utiliser une macro plus tôt qu'une fonction ?
Quelle est l'utilité ou les avantages à utiliser cette méthode plus tôt que celle des fonctions ?
Partager