JYY comme tu es là tu sais comment en SDL mettre un titre à l´application.
inconnu[pure] > Voila ton bonheur
http://sdldoc.csn.ul.ie/sdlwmsetcaption.php
A propos de " saleté "
tu écris dans ton tutorial , JeanYvesYves, que goto == programmer salement
mais , dans mon jeu - tu as vu la version beta ^^ - je souhaite rajouter un menu de depart , avec des choix :
1 -> jeu direct
2 -> options
3 ou echap -> quitter
donc au debut j´ai une boucle qui attend une de ces valeurs
mais pour quitter la boucle , je suis obligé de mettre
goto JEU pour le 1 par exemple , ou goto OPTIONS si 2 , et goto END si 3 ou escape ?
ou j´ai un autre moyen ?
- enfin , tant que ca marche . .. -
sinon , j´ai une autre question ^^
J´ai donc un ecran titre au lancement du programme , mais si j´appuie sur 2 , qui devrait lancer le menu des options , l´ecran titre est tjs la - en fait rien ne change-
je pense que le probleme vient du fait que l´ecran titre reste affiché au dessus de l´ecran des options , mais je suis pas sur . .. une idée quelqu´un ? ![]()
attends, C la pause bouffe, les collegues partent sans moi, je te réponds a 14h ![]()
jejej=>Tu programmes avec quel librairie
C´est pas urgent ^^
En revanche , des potes disent qu´ils peuvent faire mieux en 15 minutes avec The Game Factory . .. Pour y avoir un peu touché , je sais que c´est vrai , TGF est vraiment bien fait , et offre vraiment pas mal de choix . ..
en tout cas , on peut mettre des compteurs et des animations en quelques cliques , ce qui est loin d´etre le cas avec la SDL . ..
Alors certes , ce qui m´interesse n´est pas le jeu en lui meme ( cliquer comme un fou sur ctrl
) mais bien la programmation qu´il y a derriere , mais c´est quand même décevant de mettre un mois à réaliser un jeu qui prendrait 1 heure maximum avec TGF . ..
Donc , ma question est :
On peut faire quoi ( en jeu ) avec la SDL/ C++ que l´on ne peut faire avec TGF ?
- sans parler de 3d , parceque la il faut utiliser opengl... -
inconnu[pure] je programme en C++ , en utilisant la librairie SDL ( 1.28 je crois )
et je vais utiliser fmod pour le son et SDL_TTF pour les mots . ..
Quand tu seras forts en c++ avec la SDL en ajoutant un autre librairie tu pourras faire un mmorpg mais dans longtemps.
Je vais reflichire pendant que je déjeune.
@++
jejej >
tu peux faire une fonction " jeu" et faire un " return" dedans quand tu veux quitter ![]()
pareil pour options ![]()
apres, ton soucis de l´écran titre qui apparait, faut voir : ) ça doit se trouver.
En ce qui concerne le débat de game maker, rpg maker, ou ce genre de choses :
en effet, c´est des logiciels tres astucieux qui contiennent déja des moteurs qui gerent tout.
SDL n´est pas un moteur mais une librairie graphique 2D bas niveau : elle sait faire uniquement les actions de base, et te laisse programmer toute la suite.
Apres, soit tu programmes des surcouches, spécifiques a tes besoins, et tu te fais donc un " monsdlspecifique.h"
soit tu recuperes des moteurs graphiques déja tout faits, haut niveau, et a ce moment la, tu étales gamemaker et autres.
Un exemple : Irrlicht est un moteur 3D qui te permet, en 20 lignes de codes C++ a peine, d´afficher un bonhomme 3D de Quake2 qui marche.
En 20 lignes a peine tu peux également te balader dans un monde de quake3 que tu charges...
ça c´est une lib haut niveau ! ça permet, en peu de lignes, de jouer
exemple ( pas exact, mais juste pour te donner une idée)
int main()
{
initialise(1024,768);
map* m = chargemap("arena_stage.bsp");
perso* p = chargeperso("homersimpson.q3");
placeperso(m,p, 100,100,100); / / place en x,y,z
activemouvementFPS();
activecollisionsmurs_optimisées();
joue();
return 0;
}
voila comment marche vite fait un moteur ![]()
qq lignes et ça baigne... et qualité de quake3!
apres évidemment, tout dépend si tu veux des résultats immédiats, ou de l´algorithmique
les 2 sont bien ! si tu te sens pret, essaie un moteur ! mais garde aussi la notion d´algo sous la main.
car sans programmer : tu ne peux pas faire d´IA personnalisée par exemple, si gamemaker n´est pas prévu pour le réseau, tes potes sont baisés, alors que toi, en C++, un #include de + et tu roules ![]()
Pour mon probleme d´affichage , ca vient de moi ^^
j´avais ecrit vite fait system("pause");
pour tester avant de dodo , et j´ai oublie de l´enlever apres ![]()
maintenant ca marche
En ce qui concerne MonMoteur2DSDL , je crois que g pas bien compris le principe . ..
bon je vais poster le code , vous allez comprendre l´ampleur de la catastrophe ^^ . ..
en fait , mon code n´est ni reutilisable , ni optimise , et tiens dans un seul fichier source . .. J´ai pas compris comment faire des . h encore ( par exemple , j´ai essaye de séparer chargement et affichage , mais si je met SDL_LoadBMP . .. il me dit que cette fonction n´est pas définie , et si je rajoute #include SDL etc , il me dit que certaines fonctions sont " multiples defines"
bah oui g inclut deux fois sdl , c peut etre pour ca ?
http://rafb.net/paste/results/arTBzm25.html
bon , c´est pas fini , vous noterez la précision et l´importance de mes commentaires . ..
pour l´instant , je n´ai prévu aucun controle au clavier encore , mais il faut absolument que je me refasse un code " plsu propre " pour pouvoir vraiment avancer . .. mais je sais pas comemnt faire , c´est la seconde fois que je réecri le code ![]()
Parceque la , ca va encore , le code est court , mais je compte rajouter de la musique , et des sprites animés , et la ca va plus etre gérable ^^
justement il faut que tu organises bien tes données dans de bonnes structures ou classes ![]()
ce que je voulais dire pour les moteurs :
c´est que SDL est une lib graphique bas niveau : c´est a dire, elle t´aide a afficher des trucs a l´écran : mais c´est tout !
mais il existe des trucs, autres qeu SDL, qui sont dit " haut niveau", et, en quelques lignes a peine, te permettent de faire un truc puissant : l´exemple extreme que je te montre plus haut ( avec la fonction activemouvementFPS) serait un moteur 3D spécilisé dans les FPS, tu vois ce que je veux dire ?
( de tels trucs existent : par exemple, Irrlicht est un moteur 3D spécialisé dans les FPS)
´comprends rien à ces machins ![]()
J´ai déjà acheté deux livres sur le c++ , et lu plusieurs tutos dont celui de C Casteyde sur le net ( looooooong ) Et a tous les coups je reste bloqué ici ![]()
salut, ton tuto si dessous et ben je connais plein de gens qui lont fait mais moi sa me met ce message d´erreur quand je veu le compliler:
[Linker error] undefined reference to `WinMain@16´
E:\c++\devcpp\projets\jasonleboss\Makefile.win [Build Error] [Projet1.exe] Error 1
et voici le code
/ * from http://nehe.gamedev.net modified by Fvirtman */
SDL_Surface *surface;
float e=0.0;
void Quit( int returnCode )
{
SDL_Quit( ) ;
exit( returnCode ) ;
}
void handleKeyPress( SDL_keysym *keysym )
{
switch ( keysym->sym )
{
case SDLK_ESCAPE:
Quit( 0 ) ;
break;
default:
break;
}
return;
}
int initGL( GLvoid )
{
/ / init
glShadeModel( GL_SMOOTH ) ;
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ) ;
glClearDepth( 1.0f ) ;
glEnable( GL_DEPTH_TEST ) ;
glDepthFunc( GL_LEQUAL ) ;
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ;
/ / cadrage
glViewport( 0, 0,1024,768);
glMatrixMode( GL_PROJECTION ) ;
glLoadIdentity( ) ;
gluPerspective( 45.0f, 4.0/3.0, 1.0f, 100.0f ) ;
return 1;
}
int drawGLScene( GLvoid )
{
e+=(float)0.005;
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ;
glMatrixMode( GL_MODELVIEW ) ;
glLoadIdentity();
gluLookAt(0,0,0,0,0,-1,0,1,0);
glTranslatef( -1.5f, 0.0f, -6.0f ) ;
glBegin( GL_TRIANGLES ) ;
glVertex3f( 0.0f, 1.0f, e ) ;
glVertex3f( -1.0f, -1.0f, e ) ;
glVertex3f( 1.0f, -1.0f, e ) ;
glEnd( ) ;
glTranslatef( 3.0f, 0.0f, 0.0f ) ;
glBegin( GL_QUADS ) ;
glVertex3f( -1.0f, 1.0f, e ) ;
glVertex3f( 1.0f, 1.0f, e ) ;
glVertex3f( 1.0f, -1.0f, e ) ;
glVertex3f( -1.0f, -1.0f, e ) ;
glEnd( ) ;
SDL_GL_SwapBuffers( ) ;
return 1;
}
int main( int argc, char **argv )
{
int done = FALSE;
SDL_Event event;
int isActive = TRUE;
SDL_Init(SDL_INIT_VIDEO);
surface =
SDL_SetVideoMode(1024,768,32,SDL_HWSURFACE|SDL_OPE
NGL);
if ( ! surface )
{
fprintf( stderr, " Video mode set failed: %s\n", SDL_GetError( ) ) ;
Quit( 1 ) ;
}
initGL( ) ;
while ( ! done )
{
while ( SDL_PollEvent( & ) )
{
switch( event.type )
{
case SDL_KEYDOWN:
handleKeyPress( &.key.keysym ) ;
break;
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
drawGLScene( ) ;
}
Quit( 0 ) ;
return( 0 ) ;
}
t´as fait un projet windows ( point d´entree WinMain) et pas un projet console ( point d´entree main).
j´aime bien le jasonleboss lol.
Sinon je sais pas pk sa fait cette erreur
omg ce tutorial de JYY:
1.10. Passage par copie et par référence. a lair impossible rien qu´en jetant un coup d´oeil c´est impossible
rien n´est impossible ![]()