CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

JeanYvesYves
JeanYvesYves
Niveau 10
06 décembre 2005 à 21:31:14

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 :)

guyver2
guyver2
Niveau 10
06 décembre 2005 à 22:26:31

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.

dnob700
dnob700
Niveau 10
06 décembre 2005 à 22:37:13

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++.

JeanYvesYves
JeanYvesYves
Niveau 10
06 décembre 2005 à 22:47:03

oui, dans mon chapitre 1.1.4 :)

JeanYvesYves
JeanYvesYves
Niveau 10
06 décembre 2005 à 22:47:21

arg !

2.1.4 ! désolé :)
bref !

guyver2
guyver2
Niveau 10
07 décembre 2005 à 11:50:15

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

JeanYvesYves
JeanYvesYves
Niveau 10
07 décembre 2005 à 14:08:15

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.

jejej
jejej
Niveau 9
07 décembre 2005 à 15:40:36

Aaaah nan , voila comment on fait pour ecrire dans la console avec la SDL
faut avoir windows :

  1. include <windows.h>

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 ");
}

guyver2
guyver2
Niveau 10
07 décembre 2005 à 17:14:50

merci JYY j´essaye tout ça de suite.

dnob700
dnob700
Niveau 10
07 décembre 2005 à 18:28:19

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)

guyver2
guyver2
Niveau 10
07 décembre 2005 à 18:32:41

merci bien ça marche impec

Bartours
Bartours
Niveau 9
07 décembre 2005 à 21:27:00

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...

Bartours
Bartours
Niveau 9
07 décembre 2005 à 22:32:10

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
:d) 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)

dnob700
dnob700
Niveau 10
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.

guyver2
guyver2
Niveau 10
08 décembre 2005 à 13:47:06

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

JeanYvesYves
JeanYvesYves
Niveau 10
08 décembre 2005 à 13:49:58

tu dosi avoir nanosleep je pense.
A voir sous Nunux....

guyver2
guyver2
Niveau 10
08 décembre 2005 à 13:51:00

je me renseigne et je reviens dans 2 heures (apres mon cours de Synthes d´image :( )

guyver2
guyver2
Niveau 10
08 décembre 2005 à 14:36:06

merci bien ça fonctionne au poil

dnob700
dnob700
Niveau 10
08 décembre 2005 à 18:09:56

sachant (pour la portabilité) que sous windows, sleep prend un durée qui est déjà en milliseconde.

Bartours
Bartours
Niveau 9
08 décembre 2005 à 18:11:52

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.

:d) 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 ^^

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware