Création de petits personnages(opengl/sdl)

Soyez le premier à donner votre avis sur cette source.

Vue 19 871 fois - Téléchargée 1 296 fois

Description

Voici mon premier programme avec OpenGL. Il presente 3 petit personnage
animer.

En faite c'est un petit moteur 3D servant eventuellement pour ceux qui veulent faire des jeux.

Il suffit de cree un objet personnage avec CMouvPersonnage. Puis de passer les parametres dans:

ParametreAction(const CMouvementPers ACTION[], ZoneSelection zone_select, float x, float y, float direction_pers);

Dans ACTION[] on attend une constante deja predefini:
NEUTRE // dans son etat inicial
FIXA // dans une possition normal mais statique
MARCHER //pour faire marcher le personnage
COURIR //pour faire courir le personnage
ATTENDRE // ...
MOURIR // et oui il faut bien qu'il meurt un jour :)

si vous voulez definir vos propre action c'est un peu plus compliquer mais pas
imposible! Rapportez vous dans unite.h, les explications y sont
pour configurer vous montrer a configurer vos propre mouvement

Puis pour afficher votre (ou vos) personnage (s) declarer Affichage qui se
trouve dans le meme objet.

Si vous gliser votre curseur toutant maintenant le bouton de la souris enfoncée vous pouver remarquer qu'un carré de selection apparait. Et si vous
encadrer un des personnage un cercle jaune apparait.

C'est le role jouer par CSelection afin d'envoyer dans ZoneSelection zone_select les parametre de selection.

puis il a les entrer x et y pour situer le personnage

et float direction_pers qui permet de situer la direction en degree du personnage.

il est imperatif d'avoir OpenGL pour pouvoir faire fonctionner ces sources
mais vous pouvez changer de fenetrage autre que SDL et l'adapter avec un
autre.

voila il est difficile de mettre tout en detail mais les commentaire que j'ai
mis dans les sources vous guiderons surment...

Conclusion :


Ah oui , changer les header dans main.h

#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <SDL/SDL.h>

par

#include <GL/gl.h>
#include <GL/glu.h>
#include "SDL.h"

De plus jeter SDLMain.m et SDLMain.h si vous ne compiler pas sur mac.
C'est des fichier ecrit en Ojective c pour adapter la SDL a MacOS X

Si la resolution de l'ecran ne convient pas et que vous la changer
il est possible que vous avez des bugs avec la selection. C'est normal il faut
juste changer le rapport de selection. Rapportez vous dans selection.h les
explication y sont.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

XCat
Messages postés
7
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
19 décembre 2004

ton tuto est bien expliqué?mais je demande si ca marche avec un PC.....?
cs_theidiot
Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

A oui une dernière chose si tu change la configuration en enlevant Fullscreen (ce qui permet d'avoir un mode plein écran )il est possible que le carré de selection sois inverser. Pour l'adapter il faut changer un peu plus de chose dans selection.cpp et unite.cpp mais ce serait trop long à expliquer...
cs_theidiot
Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

Tu veux dire le system de fenetrage de la SDL et OpenGL ... c'est une question de rapport tous simplement. Fait apparaitre deux points dans la restitution OpenGL (une a x=0.0 y=0.0 puis une autre a x=10.0 et
0.0 par exemple et note que la distance GL est de 10.0)

Tu m'es ceci dans SDL_MOUSEBUTTONDOWN qui ce trouve dans scene.cpp:

cout<<event.button.x<<" "<<event.button.y<<endl;

pour faire apparaitre les coordonner de la souris une fois cliquer sur ta
fenetre dos. Ensuite compiler et faire marcher l'application. Cliquer exatement sur les points que tu vient de positionner et prendre note des deux coordonnés SDL

Va dans selection.h

et note les coordonné des points déquivalence du centre d'origine de la GL dans la
constante CENTRE_ECRANX et CENTRE_ECRANY et calcul la distance
des deux points et marque le dans la DISTANCE_ECRAN

ceci permet de faire un lien d'equivalence entre les coordonné pixelisé de la SDL et les coordonnées d'OpenGL.

voila j'espère que les explications sont plus claire.
Zazour
Messages postés
120
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2006

sinon,bien ta source,
sauf que j'ai pas trop compris ton explication sur la transposition des coordonnées fenêtre windows et SDL.la sélection n'apparait pas au niveau de la souris chez moi (je suis en 1280*1024).
cs_theidiot
Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

Fais un petit tour dans www.blender3d.org tu trouveras tous ce qu'il te faut. (de plus constatera que blender est le seul modeleur 3d professionnel gratuit!!!)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.