dante_tm : avec des librairies par exemple style SDL.
OU alors avec un moteur.
Moi jai des probs sur la SDl :s
Ca ne marche plus apres nombre de reinstallation !
Le probleme ?
Peu etre que cest parce que jai foutu des données sur un CD, que jai rebalancé sur mon ordi, en lecture seule.
Donc, jai tout suppr (dev et SDL)
reinstallé, toujours des problemes liéres a SDl ...
Meme en suivant mon tuto !
J´avais commencé a developper un pti jeu, tout compacté !
mais ca e marchais aps, jtrouvais ca bizarre !
alors jai essayé avec un code facile de JYY, + dsl.dll et tout ce qu´il faut, pareil marche pas !
ca vient donc pas de mo programme .
nan c est pas sa j ai compris que ca marche avec un moteur ou des librairie comme opengl
sdl etc.. mais je vois pas vraiment comment sa marche
Pour afficher des images, il faut utiliser un ensemble de fonctions écrit par quelqu´un d´autre (ou par toi), ou bibliothèque. Dans le cas précis des images, on appelle ça un moteur graphique.
Il y en a beaucoup. Sous windows, il y a principalement DirectX, OpenGL et GDI. Mais qui sont assez complexe, il y a donc toutes une série de bibliothèque plus simple, souvent pensées pour faire des jeux. Les plus "connues" sur ce forum sont entre autre : SDL, GameIncubator, NGCK et advio2.
Elles ont chacunes leur point fort et leur point faible. Tu peut rechercher sur le forum pour avoir plsu d´info.
le C et le C++ sont des langages qui te permette d´acceder a la memoire de ta machine.
ainsi ces langages te permette de TOUT faire.
Pour ce dont tu me parles, j´imagine que tu veux parler d´affichage, il te faut faire avec une bibliotheque d´affichage (sdl, directx, win32, openGL, X, wxWidget...)
A mince, quelqu´un a été plus rapide.
Et bien, il y a deux sorte de bibliothèque graphiques.Il y a celle "de bases" DirectX, GDI, OpenGL (principalement, sous windows) et les autres qui utilise déjà les fonctions de ces bibliothèque pour fonctionner.
Les bibliothèque de bases elles appelle directement le matériel pour effectuer les tâche graphiques. Par exemple (version abrégé) si on mets un 1 dans l´adresse mémoire 52 de la carte graphique, celle-ci va recopier une texture à l´écran ; je dit n´importe quoi, mais c´est l´idée. En tout cas, la gestion se fait à un niveau très bas (pas mal d´assemleur je suppose) et l´avantage c´est qu´il n´y a pas du tout à s´en préocuper.
ahh ok
merco a vous tous ![]()
Bon je vais faire un poste un petit peu long désolé, mais il n´y aura surement pas besoin de tout lire vu que je pense que ça ne sera pas utile mais je le fais a tout hasard (attention, je précise que tout ce qui va suivre provient du site de JYY fvirtman.com)
Voila le programme :
//#pragma comment(lib,"fmodvc.lib")
int main()
{
FMUSIC_MODULE * f; // pour les mids
FSOUND_STREAM* g; // pour les wav/mp3
FSOUND_STREAM* g2;
int r;
FSOUND_Init(44100, 32, 0);
FSOUND_SetOutput(FSOUND_OUTPUT_DSOUND);
FSOUND_SetDriver(0);
f = FMUSIC_LoadSong("./smb.mid");
g =
FSOUND_Stream_Open("./test.mp3",FSOUND_LOOP_NORMAL
, 0,0);
g2 = FSOUND_Stream_Open("./test.mp3",0, 0,0);
r = FSOUND_GetError ();
FSOUND_Stream_Play(0,g);
//FMUSIC_PlaySong(f);
system("PAUSE");
FSOUND_Stream_Play(1,g2);
system("PAUSE");
FSOUND_Stream_Close(g);
FSOUND_Stream_Close(g2);
FMUSIC_FreeSong(f);
return 0;
}
Le problème : il ne compile pas...
voici le log de compilation:
Compilateur: Default compiler
Building Makefile: "C:\Documents and Settings\Propriétaire\Bureau\sons\Makefile.win"
Exécution de make...
make.exe -f "C:\Documents and Settings\Propriétaire\Bureau\sons\Makefile.win" all
g++.exe main.o -o "Projet1.exe" -L"C:/Documents and Settings/Propriétaire/Bureau/Dev-Cpp/lib" -L"C:/WINDOWS/system" -llibfmod
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
(2 erreures)
Voila avec ça vous devriez pouvoir m´aider... Je précise que j´ai suivi les instructions pour installer FMOD à la lettre et qu´il n´y avait rien de spécialement compliqué pour installer donc je ne vois pas pourquoi je l´aurais installé de travers.
guyver2>
personellement j´ai utiliser ce tuto, j´ai devc++ et ça fonctionne impec donc ça vient de vous. soit il y a un truc que vous avez mal fais soit c´est pas de bol...
alors faut croire que tu as eu plus de chance que moi (que nous...). Peut-être ça provient de la version?! Mais honnement, je ne pense pas qu´on aurait fait chacun la même erreure à installer le programme de travers, en sachant qu´on ne l´a pas fait en même temps...
En tout cas, un grand merci quand même pour vous donner du mal à me répondre, surtout que ça ne doit pas être toujours bien drole...
dante_tm> Il faut utiliser des bibliothèques (vu que tu apprends, je ne peux que te conseiller de faire de la 2d.) Pour cela il y a une biliothèque très bien avec de bons tutoriaux sur le site fvirtman.com : c´est la SDL... Après pour mettre un perso ou des truc comme ça, tu utilises les fonctions de la bibliothèque qui te permettent de mettre une bitmap sur l´écran et tout et tout.. Mais peut-être que quelqu´un pourra mieux t´expliquer que moi. Je ne suis qu´un début temps et j´essaye de t´expliquer avec mes mots...
je voulais dire merci
voila un probleme dans un petit code :
je voulait faire un programme qui permet de trou ver un chiffre que vous avez penser...
Bon, ça a rien de magique, le code fait 50 lignes et il y a qu´une erreur.......sur la derniere ligne!!!
voila meme si il n´y autrait aucunes erreurs je pense que le code ne se déroulera pas comme prévu mais tant pis, j´aimerai je vous corrigiez mon erreur a la foutue derniere ligne
Hem, j´envoi le code: (en intégral au cas ou vous aurait envie de faire copier/coller)
using namespace std;
int main(int argc, char *argv[])
{
int penser;
cout << " pensez a un chiffre entre 1 et 7, puis repoindez aux questions par: \n 0 = non, c´est un chiffre au dessous \n 1 = Yeah! c´est ça! \n 2 = Non, un chiffre au dessus \n 3 ou plus = il y a une erreur d´au moins 2 chiffres" << endl;
int rep1;
cout << "le chiffre est il 6?" << endl;
cin >> rep1;
if (rep1=1)
{
cout << " j´ai gagne (poil au nez)
" << endl;
}
if (rep1=0)
{
cout << "Le chiffre est donc 5! J´ai gagne!" << endl;
}
if (rep1=2)
{
cout << "Alors le chiffre est 7, J´ai gagne!" << endl;
}
else
{
int rep2;
cout << "j´en deduis donc que le chiffre est 3!" << endl;
cin >> rep2;
if (rep2=0)
{
cout << "le chiffre est donc 2! j´ai gagne!" << endl;
}
if (rep2=1)
{
cout << "J´ai gagne! comme d´hab!" << endl;
}
if(rep2=3)
{
cout << "le chiffre est alors 3!" << endl;
}
else
{
cout << "alors le chiffre est 1, j´ai gagne!" << endl;
}
}
system("PAUSE");
return EXIT_SUCCESS;
Bon, c´est un peu long ![]()
de me repondre!
Alors la je me sens tout con! parce que ça fait un moment que je suis sur le poste et je fais plein d´autres truc en même temps donc j´ai répondu pour rien, et surtout bien après vous (sans pour autant le savoir désolé!) Bon c´est pas grave!!
je vous laisse a mon poste!
[_Pator_]> alors la je sais pas si je vais te dire une grosse connerie ou pas (je ne crois pas) mais logiquement vu que ton nombre doit être comparé au nombre mystère, ce n´est pas des = que tu dois mettre mais des == car rep1=1 prendra a ce moment là, la valeur 1... Je me trompe?! Or tu veux le comparer...
Jai trouver le moyen dutiliser quun seul rect :
Quesqu´y prend le moin de place :
_ 6 rects
OU
_ 1 rect + 6 pointeurs
je sais meme pas si ca s´apelle des pointeurs, mais cest des mots qui prennet une valeur dans mon cas.
ah oui
c´est donc pour ça que quand je l´avait executer sa partait en vrac...
beaucoup!
mais il faut pas oublier que y a une erreur a la derniere ligne de mon code!
dynoplasmma> tu parles pour la SDL avec les rectangles? car si tu utilises plusieurs images, tu es obligé d´utiliser plusieurs rectangles non?! et les termes je connais pas trop, mais il me semble que pour un rectangle, d´un obligé de déclarer un pointeur (le truc avec SDL_Surface * tonTruc). Si tu parlais pas de ça ou si je suis en tors, désolé!
[_Pator_]> de rien
pour une fois que je réponds à une question ça fait plaisir! pour ton erreure à la fin, il te manque juste une acolade pour quitter ton programme (ça correspond en algorithme à : "FIN"). tu as juste a faire ça:
.....
return EXIT_SUCCESS;
}
^^ par contre j´ai pas essayé si il marche ton programme (et tous les ´é´ et caractères avec un accent n´apparaitront pas correctement. Il faut mettre la valeur ASCII de ton caractère derrière un /)
moi aussi je rappel que j´ai encore mon problème!
Bartours : je te l´ai déjà dit (mais tu ne veux pas me croire si je me souvient bien), il y a un seul et unique problème qui est indiqué très clairement par le log de compilation :
"ld.exe: cannot find -llibfmod"
Ca veut dire que le linker n´a pas pu trouver la bibliothèque fmod. Si tu as tout bien installé, c´est que le chemin d´accès n´est pas correcte. Il ne gère peut-être pas le path, et je suppose que le répertoire courant est celui du projet et pas le repertoire LIB/.
Tu as alors plusieurs possibilité (à toi de les essayer, mais il peut y avoir d´autre chose) :
-copie le fichier libfmod.a dans le répertoire de ton projet (là où il y a le fichier .dev)
-dans la boite de dialogue de l´éditeur de lien, au lieu de mettre libfmod (enfin, je ne sais pas trop comment tu l´as mis), tu efface ce qu´il y a, puis avec le boutyons parcourir, tu parcourt ton DD jusqu´à trouver le fichier en question. Et tu clique dessus. Tu seras alors sur que le chemin qu´il enregistre est correcte.
-prabablement d´autre solutions comme invoqué le linker depuis le dossier des lib où avec des varaibles d´environnements mise-à-jours.
batours je vais essayer ![]()
Salut j´aimerais savoir comment on fait pour creer une variable qui aura un valeur aléatoire comprise entre une valeur x et une valeur y.
Merci de vos reponses
Ma question n´etais pas de savoir si on peut n´utiliser quun rect, (j´ai trouvé le moyen apres pas sure que ca marche !)
donc Quesqui prend le plus de place :
5 rectangles
OU
1 rectangle + 5 pointeurs
merci quad meme Bartours ![]()
ça dépend de tes rectangles...
Si tes rectangles sont constitué de 4 char ou de 2 char (tu ne garde que leur largeur et leur longeur) ou de 2 short (ou même de 4 short, ou 2 int sur un système 64bits), alors 5 rectangles prendront moins de place.
Si, comme c´est le plus probable, tes rectangles sont constitué de 4 int, alors les pointeurs prennent moins de place. Mais tu peut le vérifier :
if (sizeof(rectangles)*4<sizeof(rectangles*)*5)
printf("les rectangles sont plus petit");
else printf("les pointeurs sont plus petits.");
dnob700> Je ne refusais pas de te croire, c´était juste que je ne voyais pas pourquoi le problème venait du linker, or que j´avais pris celui qui était dans le tuto... Conclusion, j´ai suivi tes instructions, et j´ai parcouru mon disque dur pour remettre le linker et ça marche
alors franchement, un très GRAND merci, parce que ça fait quand même quelques jours que je poirote! je n´aurais jamais pensé a refaire le linker par moi même en fait, mais bon, c´est toujours bon à savoir pour les prochains coup aussi!
dynoplasmma> désolé si ça a pas pu t´aider! par contre, si ta méthode concerne la SDL, j´aimerai bien que tu m´en parles un peu ![]()