Salut
Je débute en C et avec SDL (je suis infographiste 3D à la base). J'essaie de réaliser des petites démos de jeux pour tester mes graphismes 2D et mes gameplays pour les jeux pros que je réalise (mais dont je ne réalise pas le dev en général).
La méthode que je souhaite utiliser est une méthode assez classique :
je donne à un "objet" (=sprite+des propriétés (variables)) 3 variables de position :
- position initiale en x et y (=anciennepos)
- nouvelle position en x et y (=newpos)
- centre en x et y (=centre)
et je calcule selon la simple formule :
Ce qui m'intéresse pour faire le tri ensuite, c'est de comparer 2 images (=comparaison 1):newposImg.x=ancienneposImg.x+centreImg.x;
newposImg.y=ancienneposImg.y-centreImg.y;
Ce qui m'intéresse est surtout la différente en Y, car avec cette comparaison que le système d'affichage fonctionne.if (centreImgA.y < centreImgB.y)
{
SDL_BlitSurface(imgA, &ancienneposImgB, ecran, ¢reImgA);
SDL_BlitSurface(imgB, &ancienneposImgA, ecran, ¢reImgB);
}
else if (centreImgA.y >= centreImgB.y)
{
SDL_BlitSurface(imgB, &ancienneposImgA, ecran, ¢reImgB);
SDL_BlitSurface(imgA, &ancienneposImgB, ecran, ¢reImgA);
}
Évidemment, cette méthode n'est pas terrible, car c'est un test pour voir si ça marche et ça marche bien entendu pour cet exemple simple (2 images).
Mais maintenant, j'aurai besoin d'aide car je ne sais pas trop comment faire pour "automatiser" tout ça :
- Créer des objets en déterminant leur variable comme anciennepos, newpos et centre et cela en x et y : dois-je créer et utiliser des structures ou des fonctions pour ça ?
- je pensais créer un système de tri utilisant le principe de la "comparaison 1", mais de manière automatique, sur les images affichées sur l'écran (et non la map) : faut-il créer une fonction qui compare ? Si auriez-vous un début de piste que je pourrais suivre, car je ne trouve pas la méthode pour faire ça (comme je le disais, je débute en C/SDL).
Donc, voilà, si vous avez des idées ou des pistes, je suis très intéressé .
Merci.
Partager