je pense qu´il parle du mode console ...
y avait conio , mais la librairie de dnob700 est mieux ( slurp ) enfin en tout cas elle fonctionne chez moi ...
elle s´appelle advio , et on peut la trouver sur
http://section-pc.fr.st
ou un truc du genre ... c´est ecrit sur la fiche de dnob700 , recherche son profil
http://lib.sectionpc.info
j´ai posté un message dans ce sens tout à l´heure, mais j´ai du oublier de le valider.
Pour gérer la console sous windows (et bientot sous linux aussi).
Godrik: Desolé je me suis trompé je voulais dire en mode DOS
Problème SDL :
(j´explique rapidement, je veux essayer de gerer le déplacement de mon personnage sonic, j´ai plein d´images que j´ai chargé. Le personnage marche vers la droite (je ne me suis occupé que de cette direction pour le moment!) mais clignote sans cesse. Je ne trouve pas la raison, peut-être provient elle de la méthode que j´ai utilisé pour le faire. Je compte sur vous pour m´éclairer!
voila la partie qui concerne le déplacement:
if(keys[SDLK_RIGHT])
{
x++;
switch (x){
case 1 :
SDL_BlitSurface(sonic1,NULL,ecran,&rectsonic);
break;
case 2 :
SDL_BlitSurface(sonic2,NULL,ecran,&rectsonic);
break;
case 3 :
SDL_BlitSurface(sonic3,NULL,ecran,&rectsonic);
break;
case 4 :
SDL_BlitSurface(sonic4,NULL,ecran,&rectsonic);
break;
case 5 :
SDL_BlitSurface(sonic5,NULL,ecran,&rectsonic);
break;
case 6 :
SDL_BlitSurface(sonic6,NULL,ecran,&rectsonic);
break;
case 7 :
SDL_BlitSurface(sonic7,NULL,ecran,&rectsonic);
break;
case 8 :
SDL_BlitSurface(sonic8,NULL,ecran,&rectsonic);
break;
}
abscisse+=3;
if (x>8)
{x=1;
}
}else
{
SDL_BlitSurface(sonic,NULL,ecran,&rectsonic);
}
SDL_Flip(ecran);
normal , quand x = 9 , tu remet x à 1 , met tu n´affiches pas ...
et puis bon , c´est pas la meilleure maniere de faire ... je t´en proposes une plus appropriée je pense :
tu fais un tableau de SDL_Surface* ( une pour chaque animation , càd pour chaque image )
SDL_Surface* Sonic[9];
// ensuite tu les charges
Sonic[0] = SDL_LoadBMP("image0.bmp");
... // ainsi de suite ... bon , en te debrouillant avec la concatenation , tu trouveras un moyen d´automatiser ça ^^
et ensuite :
if( keys[RIGHT] )
{
BLIT_Surface( Sonic[num_anim] )
anim++;
if( anim > 8 )
{
anim = 0;
}
voila
( j´espere que c´est clair sinon je reexpliquerai
Salut!
Ont est une équipe de cinque !M otivé pour apprendre!
Mais ont ne sais pas quel livre choisir!Une petite sugestion svp?
jejej> oui merci, je pense avoir compris... Je vais refléchir a la facon dont je vais m´y prendre!
maxime450> je m´y connais pas du tout en livre, mais perso, j´avais c++ builder (de borland je crois! ou en tout cas c´est un truc dans le genre) mais la vieille version, et il était pas vraiment bien expliqué, pis y´avais pas les corrigés des exo...
Oh et en fait , en plus d´avoir fait des erreurs , j´ai dit n´importe quoi ^^
le principe serait plutot ça :
toujours ton SDL_Surface* sonic[9] , chargé de 0 à 8
un int current_anim = 0;
while( !q uit )
{
if( key[RIGHT] )
{
current_anim++;
if( current_anim > 8 )
current_anim = 0;
}
SDL_BlitSurface( sonic[current_anim] , ... );
SDL_Flip(screen);
}
comme ça ton sonic est affiche a chaque frame , et non quand on appuie sur le clavier ...
bon , un dernier truc , c´est que , si tu fais ça , ton sonic va changer d´animation beaucoup trop vite ... ( 40 fois par seconde quoi ^^ ) donc ça sera moche ...
en fait , je te conseille de recuperer le temps ecouler entre chaque frame , avec SDL_GetTicks(); dans un Uint32 time; par exemple
( genre :
Uint32 lastframe = SDL_GetTicks();
while( !q uit )
{
Uint32 currentframe = SDL_GetTicks();
time = currentframe-lastframe;
lastframe = currentframe;
et ensuite tu increments un compteur de temps par ´time´ quand on appuie sur right ... et tu fais en sorte que quand time atteint une certaine valeur ( je sais pas , 100 ms devrait etre pas mal ) on augemente ´current_anim´
ça sera la meme chose pour les deplacements dailleurs
j´espere que c´est comprehensible ^^
en fait ce que l´on fait souvent c´est que l´on découpe le moteur de jeu (deplacement des personnages, reseau , collisions...) du moteur d´affichage.
donc en fait, ce genre de probleme ne se poses jamais... ![]()
En effet, et c´est bien plus propre.
Je passe juste pour dire que notre équipe de modeleur 3d (pour la cinematique d´intro 3d) cherchent des programmeurs SDL pour un rpg 2d dbz ainsi que des graphistes si certains sont interessé je laissserais l´adresse du site ici pour vous montrer quelques screens du projet.
Sur ce bonne continuation c´est un très bon topic.
bonjour,
j´ai 15 ans et j´aimerais savoir s´il est possible d´apprendre la programmation, en plus de ma vie de lycéen (qui m´occupe bcp de temps), en plus de ma vie de famille, de mes amis.
merci.
PS : envoyez un mail si vous me répondez, c´est préférable, car je ne passe pas ma vie sur les forums ;)
Oui je pense que c´est possible...
Il te faut de la volonté et un peu de temps.Mais si tu as beaucoup de temps c´est mieux!!
J´ai commencé par apprendre l´html(ce n´est pas un languagez de "programmation") puis le Javascript qui ressemble un peu au c et maintenant j´apprend le c sur le site du zero:
http://www.siteduzero.com
En parlant de c j´ai deux questions:
1Dans le site du zero "m@teo21" dit que plus tard dans son tuto on apprendra a faire des programme en mode fenetre.
Et j´aimerais savoir pourquoi c´est "difficile" de creer un prog en mode fenetre?
2Et ce que si je fai un programe(tout con ); je le compile et je prend l´executable sur ma clé usb, je le met sur un autre pc et il s´execute pareil que sur mon pc?
Merci a tous!!
![]()
Pour la 2, ca depend de ton prog si il y a des image il faut faire un zip ac l´exe et les image et les mettre sur ta cle
merci pour le lien
kikou81 :
en mode console, l´ecran noir avec lecriture blanche, tu prend que lexecutable et ca marche.
par contre comme te la dit sangohan, avec des images comme avec SDL, avec l´executable seule : impossible de pouvoir tester ton programme.
Pour la question 1, faire un programme en mode fenêtre c´est difficile car contrairement à un programme en mode console, tu ne sais pas dans quel ordre vont s´exécuter les fonctions de ton programme : celà dépend de là où vas cliquer l´utilisateur. Il faut donc programmer différement pour prendre ce phénomène enc ompte. Globalement tout se base sur la gestion de "message" que recoit ton programme et qui lui indique ce que fait l´utilisateur. Même si ce n´est pas très dur, il y a pas mal de chose à faire et à comprendre et il vaut mieux est déjà à l´aide avec le reste du langage avant de s´y mettre.
"j´ai 15 ans et j´aimerais savoir s´il est possible d´apprendre la programmation"
Ca demande du temps c´est clair. Ca depends donc beaucoup du temps que tu peux y mettre et de ta motivation.
"car je ne passe pas ma vie sur les forums ;) "
Quand on pose une question sur un forum, la moindre des choses c´est de repasser voir ces reponses.
Aussi j´ai une autre petite question(j´espere que je ne vous embete pas trop avec mes questions);
Il y a t-il en C (je travail avec dev c++) une fonction permetant d´effacer l´ecran d´un programme en mode console.
Parce que quand je fais un programme je trouve cela assez moche que tout s´affiche a la suite...
![]()
sous windows :
system("cls");
sous linux :
system("clear");
il faut utiliser stdlib.h.