Rotation Image/Positionnement / C SDL sdl_gfx
hazaki
Messages postés
7
Statut
Membre
-
hazaki Messages postés 7 Statut Membre -
hazaki Messages postés 7 Statut Membre -
Bonjour,
Je cherche à faire développer un tower defense en C/SDL. Pour cela, j'aurais besoin de developper une fonctionalité qui permet aux tourelles de tourner.
J'ai donc un sprite pour le terrain, un pour la base de la tourelle et une pour le canon que je veux faire tourner.
Je dois donc utiliser la librairie sdl_gfx avec la quelle je ne suis pas familier et dont je n'ai pas trouvé de tutoriels très aboutis.
J'ai donc ecrit ce code mais le positionnement ne marche pas et il y a une bande noire dont je n'arrive pas à me débarasser.
Voici le code :
et voilà ce que cela donne :
https://imageshack.com/photo/my-images...eenshotxvi.png
Merci de bien vouloir m'aider
Je cherche à faire développer un tower defense en C/SDL. Pour cela, j'aurais besoin de developper une fonctionalité qui permet aux tourelles de tourner.
J'ai donc un sprite pour le terrain, un pour la base de la tourelle et une pour le canon que je veux faire tourner.
Je dois donc utiliser la librairie sdl_gfx avec la quelle je ne suis pas familier et dont je n'ai pas trouvé de tutoriels très aboutis.
J'ai donc ecrit ce code mais le positionnement ne marche pas et il y a une bande noire dont je n'arrive pas à me débarasser.
Voici le code :
void RotationSdl(SdlJeu *sj, SDL_Surface * ecran, int xtank, int ytank, int xtourelle, int ytourelle, int type)
{
SDL_Surface * rotation = NULL;
double angle;
SDL_Rect pos;
pos.x=xtourelle;
pos.y=ytourelle;
if(ytourelle<ytank && xtourelle>xtank)
{
angle=90+(180/PI)*(atan(fabs(ytourelle-ytank)/fabs(xtourelle-xtank)));
}
else if (ytourelle>ytank && xtourelle>xtank)
{
angle=90-(180/PI)*(atan(fabs(ytourelle-ytank)/fabs(xtourelle-xtank)));
}
else if (ytourelle>ytank && xtourelle<xtank)
{
angle=270+(180/PI)*(atan(fabs(ytourelle-ytank)/fabs(xtourelle-xtank)));
}
else if (ytourelle<ytank && xtourelle<xtank)
{
angle=270-(180/PI)*(atan(fabs(ytourelle-ytank)/fabs(xtourelle-xtank)));
}
if(type==2)
{
rotation=rotozoomSurface(sj->image->imgtourelle[6], angle, 1.0, 1);
}
if(type==3)
{
rotation=rotozoomSurface(sj->image->imgtourelle[8], angle, 1.0, 1);
}
SDL_SetColorKey(rotation,(SDL_SRCCOLORKEY|SDL_RLEACCEL), SDL_MapRGB(rotation->format, 0, 0, 0));
SDL_SetAlpha(rotation, SDL_RLEACCEL, 0);
AffichageImageSdlJeu (rotation, ecran, xtourelle, ytourelle);
pos.x = xtourelle - rotation->w / 2; /*ReTest du positionnement*/
pos.y = ytourelle - rotation->h / 2;
SDL_FreeSurface(rotation);
}
et voilà ce que cela donne :
https://imageshack.com/photo/my-images...eenshotxvi.png
Merci de bien vouloir m'aider
A voir également:
- Rotation Image/Positionnement / C SDL sdl_gfx
- Rotation ecran windows - Guide
- Rotation video - Guide
- Image iso - Guide
- Reduire taille image - Guide
- Légende image word - Guide