OpenGL ne marche pas pareil que SDL.
Pour te donner une idée :
imagine un monde en 3D. Dedans, tu dessines des triangles ou des quads texturés (un sprite sera ainsi un quad dans l´espace).
C´est toi qui donne les points en 3D (imagine au milieu de ta chambre une feuille de papier qui vole)
Ensuite, tu définis la caméra (ou tu te places dans la chambre, ou tu regardes, et si tu es plus ou moins penché...)
openGL te calcule alors ce que tu vois...
Pour incliner un sprite, il suffit de le dessiner autrement (de placer les points de ta fauille de papier autrement) ou alors de placer ta caméra autrement.
Il existe cependant une fonction qui inclinera tout ce que tu dessineras par la suite, c´est glRotate, mais il faut bien comprendre que la philosophie 3D n´est pas comme la 2D ![]()
c´etait genre ´ fprintf( stderr ( ou out ?) , "message");
fprintf(stderr,"message",...) permet d´ecrire dans un fichier texte (par defaut) qui est une sorte de recepteur de message d´erreur
fprintf(stdout,"message",...) permet d´ecrire sur la sortie standard, si tu a lancé le prog via une ligne de commande ça doit ecrire sur la console deriere ta fenetre SDl. si tu a lancé le prog en cliquant sur l´icone ça ecrit dans un fichier sdtout.txt dans le repertoire de ton executable.
ces deux fonction sont definie dans stdio elle n´ont rien de fonctions propre a SDL et ne permetent en aucun cas d´ecrire sur une fenetre SDL.
Pour écrire dans une fenêtre SDL, il y a JYY qui a écrit une fonction PrintSDL ou SDLPrint.
Je suppose qu´on peut la trouver dans son tuto sur le C++.
oui, dans mon chapitre 1.1.4 ![]()
arg !
2.1.4 ! désolé ![]()
bref !
j´ai un petit probleme avec une fonction pthread_create sous linux (j´imagine que c´est un peu la meme chose que CreateThread sous windows). J´aimerai passer des arguments a la fonction qui est appelée lors de la création de ce thread mais le seul argument qu´accepte une telle fonction est du type (void*); comment faire pour lui envoyer autre chose que rien du tout? j´ai été voir ceci.
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/pthread_attr_init.3.html
qui doit sans doute parler de mon probleme mais je n´ai pas bien saisi comment ça marche.
j´ai aussi essayer de "caster" la variable que je voulai passer en parametre mais ça ne fonctionne pas.
merci
void*, ce n´est pas "rien du tout" c´est un "pointeur pure" si j´ose dire : ça contient une adresse, c´est tout : il faut le caster pour aller relire les données.
Pour passer des parametres, rassemble tes données dans un segment fini (avec malloc, ou alors en statique)
puis passe lui l´adresse de ce segment : tu peux ainsi tout récupérer.
Aaaah nan , voila comment on fait pour ecrire dans la console avec la SDL
faut avoir windows :
extern char ** __argv;
extern int __argc;
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// la initialisation de la SDL , chargement , bref
// et pour ecrire dans la console ( plutot que dans le fichier texte ) :
fprintf (stderr," essai ");
}
merci JYY j´essaye tout ça de suite.
jejej : oui mais le but c´était d´écrire dans la fenêtre de la SDL. écrire dans la console on peut le faire avec n´importe quel stdio ou autre du même genre.
Je suppose qu´on doit pouvoir écrire dans la fenêtre de la SDL en récupérant son hDC (c´est possible avec la SDL ?) et en appelant TextOut (avec windows toujours, et il doit y avoir quelque chose d´équivalent avec X peut-être)
merci bien ça marche impec
Merci pour les réponses!
La fonction SDLprint ne fonctionne pas, pourtant j´ai tout fait correctement, mais le message n´apparait pas a l´écran (peut-être parce que je l´ai collé sur screen et non sur mon décor de fond...), je vais essayer de rectifier ça! Sinon pour le site de JYY, en ce moment je passe tout le temps dessus pour apprendre la SDL (je suis a la fin des tutos SDL mais j´ai encore beaucoup de lacunes!).
Pour ce qui est d´openGL, est-ce vraiment si compliqué que ça a gérer si je veux uniquement inclier mes sprites? parce que je m´étais dit justement utiliser cette méthode afin de me faire gagner du temps (pour faire les autres sprites) et de la place car si je veux que ça soit pas trop moche faut en faire pas mal, et donc ça allourdit considérablement mon projet...
C´est bon la fonction pour écrire fonctionne, seulement j´y reproche quelques inconvénients:
Si on écrit sur tel ou tel image, lorsqu´on passe avec une autre au dessus, ça disparait (a la limite c´est pas super génant vu que lorsque quelqu´un parle, les personnages n´ont plus besoin d´être en mouvement...), par contre derrière les lettres, il y a un cadre noir qui apparait (le rectangle?!), n´y aurait-il pas la possibilité de personnaliser ceci? (mettre une jolie fenetre de dialogue derrière!).
Sinon j´ai essayé de faire marcher les sons (site de JYY, partie concernant "fmod"), j´ai mis les .H dans le dossier correspondant, le .a aussi, j´ai ajouté fmod.dll dans le repertoire, j´ai mis le include et dans l´option de compilation j´ai ajouté: -llibfmod (bref j´ai tout suivi) et quand je compile ça me marque :
C:\Documents and
Settings\Propriétaire\Bureau\Dev-Cpp\Bin\..\lib\gc
c\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -llibfmod
collect2: ld returned 1 exit status
make.exe: *** [Projet1.exe] Error 1
Exécution terminée
qu´est-ce que je suis censé faire? me manque un fichier dans mon repertoire bin? (lequel parce que j´ai cherché et j´ai rien du tout)
télécharge fmod pour commencer et installe le si c´est pas déjà fait.
Là le linker n´a pas trouvé le fichier de la bibliothèque.
Voila encore une question:
j´aimerai faire "dormir" un processus pendant une durré inferieure a 1 seconde (donc sleep() ne va pas) y a t-il une autre commande (sous linux) pour mettre un processus en pause autre qu´une boucle vide qui accapare toutes les ressources ?
merci
tu dosi avoir nanosleep je pense.
A voir sous Nunux....
je me renseigne et je reviens dans 2 heures (apres mon cours de Synthes d´image
)
merci bien ça fonctionne au poil
sachant (pour la portabilité) que sous windows, sleep prend un durée qui est déjà en milliseconde.
dnob700 Posté le 07 décembre 2005 à 23:19:56
télécharge fmod pour commencer et installe le si c´est pas déjà fait.
Là le linker n´a pas trouvé le fichier de la bibliothèque.
je l´ai deja telechargé. Mais installé dans quel sens? si il y a un fichier setup ou quelque chose comme ça alors je n´ai pas installé et mon problème doit venir de la, si par contre tu voulais dire de mettre le lien dans les options du compilo, mettre les fichier .a et .h et tout ce qui va avec, alors dans ce cas tout est deja fait et mon problème n´est pas résolu! help ^^