Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Conseils pour débuter  (Lu 2670 fois)

0 Membres et 1 Invité sur ce sujet

cervo

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Conseils pour débuter
« le: Janvier 28, 2013, 09:55:43 am »
Bonjour à tous,

J'aimerai me remettre au c++ que j'ai pratiqué pendant quelques années, et un ami m'a fait découvrir SFML.
Je me suis dit, quoi de mieux pour trouver la motivation de pratiquer, que de se lancer dans un mini-projet.

Le voici donc, il est très simple, j'aimerai afficher une map, un personnage dessus, un élement de paysage (genre un arbre) et déplacer le personnage à la souris, le rendu devra ressembler à Age of Empires (rendu 2d iso si je ne me trompe pas?). Voilà, un projet de toute petite envergure histoire de ne pas placer la barre trop haute, mais juste pour le plaisir de comprendre comment ça fonctionne (je me suis toujours demandé).

J'ai googlé pour trouver quelques tutoriels afin de réaliser cela, mais souvent les liens me renvoient vers le forum du site du zéro, qui semble HS pour le moment (les URL donnent des 404).

Je vous sollicite donc pour me conseiller sur les éléments suivants (précision : je ne suis pas graphiste) :
- Pour avoir un rendu 2d iso, faut-il créer ses textures directement avec un tel rendu? si oui, quel logiciel me conseillez-vous?
- J'ai à peu près assimilé la collision de sprite, mais comment faire pour de la 2d iso? Par exemple un personnage ne peut pas passer sur la base de l'arbre, mais passer derrière l'arbre.
- Pour l'affichage du personnage, quand il va à droite, il doit être tourné vers la droite, vers la gauche à gauche, etc etc, est-ce que cela se gère avec la technique tu tile mapping ou est-ce que j'ai tout faux?
- Si je voulais afficher plusieurs personnages, il ne me faut charger qu'une seul texture, et un sprite par personnage, c'est bien ça? Un sprite ne doit pas être partager entre plusieurs perso, on est d'accord?
- Et enfin un question plus de technique, imaginons que j'ai une classe Personage, je pensais que la gestion du sprite associé à ce perso se faisait dans cette classe Personnage, ie création du sprite, chargement de la bonne image suivant le sens du déplacement, est-ce que c'est une bonne technique ou est-ce que c'est à la boucle principale qui fait les draw de s'en charger?

Voilà, beaucoup de questions pour un 1er post, mais je n'ai pas réussi à trouver de réponses claires à mes questions.

En vous remerciant d'avance

Bonne journée,
Julien

edit: petite précision, j'utilise la version 2 de SFML

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Conseils pour débuter
« Réponse #1 le: Janvier 29, 2013, 11:13:54 pm »
Bon je suis nouveau mais j'ai déjà réfléchi aussi à ces problèmes,

Citer
J'ai à peu près assimilé la collision de sprite, mais comment faire pour de la 2d iso? Par exemple un personnage ne peut pas passer sur la base de l'arbre, mais passer derrière l'arbre.

Il te suffit de placer l'arbre avant le personnage et de mettre que c'est seulement la case du tronc qui gère la collision

Citer
- Pour l'affichage du personnage, quand il va à droite, il doit être tourné vers la droite, vers la gauche à gauche, etc etc, est-ce que cela se gère avec la technique tu tile mapping ou est-ce que j'ai tout faux?

Ajoute une simple variable qui choisi l'image du personnage que tu veux afficher (une image par direction voulue)

Citer
- Si je voulais afficher plusieurs personnages, il ne me faut charger qu'une seul texture, et un sprite par personnage, c'est bien ça? Un sprite ne doit pas être partager entre plusieurs perso, on est d'accord?

Si tu veux faire ça, tu devrais créer deux sf::Sprite, donc oui mais tu peux faire ça:

sf::Texture Perso;
Perso.loadFromFile("tilesetPerso.bmp");

sf::Perso1(Perso);
sf::Perso2(Perso);
 


Citer
- Et enfin un question plus de technique, imaginons que j'ai une classe Personage, je pensais que la gestion du sprite associé à ce perso se faisait dans cette classe Personnage, ie création du sprite, chargement de la bonne image suivant le sens du déplacement, est-ce que c'est une bonne technique ou est-ce que c'est à la boucle principale qui fait les draw de s'en charger?

J'ai pas encore vraiment réalisé ceci, mais oui, à ta place j'utiliserais une classe ;)

Bonne chance ;)



cervo

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Re : Conseils pour débuter
« Réponse #2 le: Janvier 30, 2013, 09:53:13 am »
Merci pour tes réponses :)

Par contre, sur ce point :
Citer
Il te suffit de placer l'arbre avant le personnage et de mettre que c'est seulement la case du tronc qui gère la collision
Imaginons que ma case fasse 40x40 et que la base (le tronc) ne fasse que 10x10, cela signifie que mon personnage ne pourra pas accéder du tout à la case? Impossible de le faire accéder à l'espace de la case qui n'est pas "remplie" par le tronc?

Phanoo

  • Full Member
  • ***
  • Messages: 136
    • Voir le profil
Re : Conseils pour débuter
« Réponse #3 le: Février 03, 2013, 01:15:14 pm »
tout est possible, même avec un moteur de Tiles donc qui gère les collisions case par case, tu peux très bien aller plus loin que la case "obstacle" ou case "vide", en définissant des cases à moitié obstacle/vide, ou des cases où la collision est en forme de triangle rectangle... (cf les jeux de plateforme avec des pentes) mais c'est plus dur à coder

à mon avis pour ce que tu veux faire, le mieux c'est de rester sur des tiles simples obstacle ou non, mais que ton élément de collision ne soit pas ton perso mais l'ombre de ton perso. comme ça, tu pourra passer devant l'arbre, plutot que ton perso tape sa tete contre le pied de l'arbre ce qui n'est pas logique niveau perspective  ;D
Après il faut adapter ton arbre pour que ça marche bien en tiles.
ton pied peut faire 1 tile de large mais on le fait souvent sur 3 pour faire plus naturel : le tile central contient la majorité du pied, c'est l'obstacle, et les tiles des cotés contiennent les bords du pied (genre des racines qui dépassent) et sont traversables. c'est pareil en vertical, tu peux faire dépasser le bas de l'arbre sur le tile d'en dessous et le mettre en traversable. ça permet de casser l'aspect "grille" inhérent aux Tiles ;)
C'est comme sur les jeux de plateforme, pour pas que le perso semble flotter sur l'herbe, on la dessine à cheval sur 2 tiles en hauteur, comme ça la collision se fait sur l'herbe dense et non sur les trois brindilles qui dépassent au dessus :)
« Modifié: Février 03, 2013, 01:20:24 pm par ratatax »