vi mais bon
c´était pour simplifier.
Sinon, comme je lance toujours la compile en C++, je n´utilise pas trop les focntionnalités qui ne marchent plus en C++, lol !
ça ne m´empeche pas de compiler des malloc a grand coup de C++, et wé ! j´suis comme ça moi, lol !
merci JYY ![]()
"ça ne m´empeche pas de compiler des malloc a grand coup de C++, et wé !"
RRaaaa ! faut pas dire ca, il y a des cardiaques ici ;)
"ça ne m´empeche pas de compiler des malloc a grand coup de C++, et wé !"
RRaaaa ! faut pas dire ca, il y a des cardiaques ici ;)
je confirme, tu ferait mourir plus d´un de mes profs qui, des le début du cours de c++, nous ont bassiné avec le fait qu´il falait oublier les malloc/calloc/free au profit (non négligeable) de new/delete
[cardiaque, s´abstenir]
C´est marrant, j´ai tendance à faire plutot le contraire : écrire un code en C dans son idée (sans POO par exemple), mais utiliser new/delete ou des références lorsque ça m´arrange.
En gros, je recherche toujours ce qui est le plus simple.
je viens de me rendre compte que j´ai bloqué sur quelque chose de tres bete ...
Gerer deux boutons simultanament pour avoir un deplacement d´image.
Je fait avec Q et S, ca ne marche pas, rien a faire.
Je vais voir le code LeZarWare de Vengeur41 pour voir un de ses jeux qui exploite ce que je veux, et la je tombe sur un commentaire :
/* Attention au clavier
SDL etant une librairie américaine, le clavier est un qwerty.
Donc a et z = q et w
*/
Voila pourquoi ca marchait pas !
je teste avec les fleche gauche et droite mon prog et ... CA MARCHE !
Vous auriez pas une photo d´un clavier qwerty pour que je puisse gerer en fonction ?
Ou alors quelquun aurais - t - il deja modifié un dossier .h de la SDL pour que ca marche bien avec les claviers azerty ?
J´ai retrouvé un vieux truc que j´avais fait pour le clavier AZERTY. A la base, cependant, il n´est pas terminé, mais tu peux te servir des fonctions déja.
Comme tu vois, les fonctions SDL ne sont pas branchées, mais ça peut te donner une idée.
http://www.rafb.net/paste/results/B02FXo79.html
Pour une photo de clavier QWERTY, tape simplement QWERTY sous google image.
Sinon, en ce qui concerne les malloc, on m´a souvent obligé d´utiliser les malloc. Et au boulot souvent, je dois utiliser du code fait il y a fort longtemps en C... Donc dans certains cas, ça alterne joyeusement les new et les malloc (la on dégueule tous un grand coup) c´est pour ça qu´il faut bien faire gaffe a ne pas deleter un truc fait avec malloc, ni faire un free d´un truc alloué avec new...
A propos, pour ceux qui ne connaissent pas la différence fondamentale entre new et malloc (qui peut poser des soucis), regardez mon tuto chapiter G.? - difference entre new et malloc ![]()
Encore merci JYY ![]()
Je tient a preciser que vous etes tous vraiment sympathiques de repondre a beaucoups de questions ![]()
Aïe ! je viens de rencontrer un gros probleme !
jai voulu gerer le deplacement dune image en appuyant simultanement sur deux boutons, mais probleme, si on reste appuyer sur les deux en meme temps ca va plus vite que si on appuie simultanneme nt :
if(keystate[SDLK_a] && simult_df==0)
{
r3.x=r3.x-2;
simult_df=1;
}
if(keystate[SDLK_s] && simult_df==1 && r3.x>260)
{
r3.x=r3.x-2;
simult_df=0;
}
Faudrais que je trouve un moyen pour regler ce probleme, jai penser a mettre une attente, mais ca marcherais pas.
C´est logique ça aille plus vite :
tu dis que si tu appuies sur a, alors tu fais x-2, si tu appuies sur s, tu fais x-2 aussi
Du coup, si tu appuies sur les deux, ça rentre dans les 2 if, donc tu te retrouves avec x-4...
es tu sur que pour la touche s, tu ne voulais pas mettre y-2 ?
Non cetait fait expres :
je pensais que quad on appuyait deux touches en meme temps seule la derniere etait prise en compte (comme quand jecri en ce moment)
Je veux faire une sorte de concours, deplace une forme vers son coté, il faut pour cela puis simultanement sur q s q s q s ...
Mais comme on peut appuyer sur deux touches en meme temps, mon essai tombe a l´eau.
meuh non ![]()
on peut tout faire en c++ ...
si j´ai bien compris tu veux faire un jeu style "bourrin" ?
enfin faut appuyer sur "gauche" puis "droite" par exemple successivement pour faire avancer un truc ?
ben pour ça tu fais une variable bool valid; par exemple , puis :
if( valid && touche(gauche) )
alors...
valid = false;
if( !v alid && touche(droite) )
alors...
valid = true;
enfin je sais pas trop , je suis pas sur d´avoir bien compris , j´espere que ça peut aider...
Oui c´est parfaitement ca jejej ![]()
merci !
jvais esayer d´appliquer ta methode.
petite question comme ça en passant:
existe t-il une fonction C ou C++ qui calcul la valeur d´une chaine contenant une opperation
genre calcul("5+3*(2+5)"); qui renverait 26. un peu comme la fonction eval en javascript ?
sinon question opengl:
j´ai trituré le 1er exo de JYY sur opengl en ajoutant des textures. jusque là pas de pb. je voulait essayer de rendre le tout un peu transparent donc avant de passer ma texture SDL a opengl je lui applique une fonction de transparence (SDL_SetAlpha(s, SDL_SRCALPHA | SDL_RLEACCEL, 255) ) mais ça ne marche pas.
quel est la maniere a utiliser ?
merci
1/ Ca n´existe pas en standard, mais c´est simple a écrire...
2/ as tu penser a passer un parametre supplementaire a l´initialisation d´opengl?
1/ simple a ecrire : justement j´en ai marre de réécrire les fnction simples a ecrire et de découvrire apres qu´elles existe deja...
2/ comme quoi ? voici mon init
// init
glShadeModel( /*GL_FLAT*/GL_SMOOTH );
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glClearDepth( 1.0f );
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glEnable(GL_TEXTURE_2D);
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 );
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
guyver, autant il existe des fonctions simples qu´il est interessant de réécrire (à la limite à chaques fois qu´on en a besoin pour les adapter particulièrement à la situation comme les conteneur de le STL), autant un interpréteur même "simple", ce n´est pas simple.
Pour windows, j´en ais un dans ma lib sectionPC, mais je ne l´ais plus mis à jours depuis longtemps (enfin ça devrait toujours marcher). Il utilise le moteur de script de windows donc c´est assez puissant.
http://lib.sectionpc.info
merci mais le "pour Windows" m´interdit de tester ta librairie (c´est sous linux). Mais c´est pas grave j´ai réflechi cette nuit et je pense que j´ai cerné le probleme et donc je vais coder le tout cet après midi. merci quand meme...
"simple a ecrire : justement j´en ai marre de réécrire les fnction simples a ecrire et de découvrire apres qu´elles existe deja... "
C´est ca l´apprentissage. Parfois je le fais juste pour le plaisir, pour comprendre mieux comment ca marche, pour illustrer un concept.
Sinon, pour l´alpha blending,
il faut activer le blending dnas opengl
un truc du genre glEnable(GL_BLEND);
et choisir une fonction de blending glBlendFunc (...);
Avec glut, il y a un parametre a passer a la creation de la surface: GLUT_RGBA.
Utilise SDL pour amorcer OpenGL : infiniment mieux que glut ![]()
cf mon tuto sur opengl qui s´appuie dessus.