Salut, moi j´aimerais savoir sur quel site je pourrais trouver une table ASCII, je voudrais aussi savoir à quoi ça sert d´écrire un nombre en octal ou héxadécimal, comment peux-t-on savoir à quoi équivaut ces nombre et es-ce important ou utile dans la programmation d´un jeux
http://www.asciitable.com
en octal, ça sert a rien je pense...
en hexa, ça permet de code un octet sous 2 digits. c´est plus propre. Les éditeurs de secteurs utilisent l´hexa pour etre propre d´ailleurs.
dans la pratique, si tu ne veut pas faire de reverse-engeneering, de lecture binaire ( et encore) ou autres, tu n´as pas spécialement besoin de savoir te servir de l´hexa...
L´hexa est une base 16. Dans la vie, on compte en base 10. La calculatrice intégrée de Windows sait convertir les nombres en binaire, octal, ou hexa.
merci
en octal ça sers qu´en C qui " par défaut" attend que tu lui donne les caractère en octal plutot qu´en héxa si tu ne les lui donne pas en décimal.
dnob700 > ? je ne comprends pas bien ce que tu veux dire ?
En ce qui concerne le C, c´est le compilateur qui te compile de toute façon toutes les constates en format binaire, que tu lui donnes en hexa ( hard), octal, ou décimal, ça ne change que le passage d´un switch dans le compilo...
Je ne vois pas bien ce que tu as voulu dire par la ?
L´octal est un assemblage de 3 bits, ce qui est bcp moins pratique que l´hexa, je ne connais pas bcp d´applications a l´octal...
à 12 ans tu sors déjà des progs comme ça ? !
Lol ya pas que l´age qui compte,la volonté fait toute la différence.
Allez, j´en profite pour examiner ton code, et j´ai trouvé un point qui m´intéresse.
Ca concerne bien évidemment les pointeurs, bah oui !
Donc, quand on déclare un pointeur, on le fait en précisant son type, à savoir
int* mon_pointeur_cheri;
Mais dans son code ( et je sais que c´est juste, j´ai déjà utilisé un peut FMOD mais sans avoir eu appris les pointeurs), il fait
FSOUND_SAMPLE *sound1;
C´est pas un type ça, FSOUND_SAMPLE ? Mais alors pourquoi on le met ? C´est-y pourtant qu´on dirait bien que s´en est un vu qu´on initialise sa variable plus bas :
sound1=FSOUND_Sample_Load(FSOUND_FREE, " sons/bounce1.midi", 1, 0, 1);
J´en suis pas sûr mais je crois que s´est une structure.
Alors, prenons : pour FMOD, je suis en train de l´étudier aussi, et j´ajoute que j´ai commencé un tuto ( tres simple pour le moment) dessus, dans le tuto de mon site.
l´objet FSOUND_SAMPLE, sans *, est, en effet, une structure. Mais ça pourrait etre une classe, ou meme un int, la n´est pas la question en fait ![]()
Tout ce qu´on doit retenir, c´est que " ça" contient des données pour la musique, et je dirais meme que " ça" peut etre gros, si vous chargez dedans un gros fichier son...
Alors pourquoi un pointeur, pourquoi FSOUD_Sample_Load renvoie un pointeur ?
je compare cela a un site internet :
Imaginez une fonction, dans un langage bizarre :
Site = GetSite("http://www.unsite.com" );
Vous avez 2 façons de récupérer le site :
- soit vous récupérez toutes les données du site : disons 300 Mo
- soit vous récupérez juste le lien vers le site : disons 10 octets...
C´est la meme chose pour Sample_Load :
au lieu de vous renvoyez un paquet de données collossale dans FSOUND_STREAM, il cree une structure en mémoire, quelque part, on s´en fout ou, la ou il y a de la place, il la remplit, en chargeant le fichier, puis il vous donne un pointeur, c´est a dire l´adresse de cette structure créee :
en gros, il vous dit " je l´ai mise a cet endroit." au lieu de vous dire " Tiens, voila les 50 Mo de cette structure"
woah tu commences tot dis donc! ![]()
/ *
SDL_Surface *screen, *intro, *fin, *backround, *raquette, *briqueR[10], *briqueG[10], *briqueB[10], *briqueS[10], *balle;
/ *
SDL_Rect Backround={0, 0, 480, 360};
SDL_Rect BalleR;
SDL_Rect Raquette;
SDL_Rect BriqueR[10], BriqueG[10], BriqueB[10], BriqueS[10];
/ *
FSOUND_SAMPLE *sound1;//Son pour collisions balle/raquette
FSOUND_SAMPLE *sound2;//Son pour collisions balle/brique
/ *
/ /FSOUND_STREAM *Backround_Music;//Musique de fonds
/ *
SDL_Event event, Debut;
/ *
Uint8 *keys, *debut;
/ *
short score=0;//Le score est à 0;
short vie=3;//On commence avec trois vies(balles).
short BalleX, BalleY;//Position de la balle.
short RaquetteX, RaquetteY;//Position de la raquette.
short BriqueRX[10], BriqueRY[10];//Position
short BriqueGX[10], BriqueGY[10];//des
short BriqueBX[10], BrqiueBY[10];//briques
short BriqueSX[10], BrqiueSY[10];//
short Balle_Vitesse=1;//La vitesse de la balle en pixel.
short Vitesse=1;//La vitesse du jeu.
short BriqueR_Vie[10];//La
short BriqueG_Vie[10];//vie
short BriqueB_Vie[10];//des
short BriqueS_Vie[10];//briques
short Niveau;//Numero du niveau.5 prévus ![]()
bool Continue_Game;
bool Playing_Game;
/ *
void Initialisation();
void Introduction();
void Chargement();
void Chargement_Niveau();//Fontions pour initialiser le niveau et pour continuer le jeu.
void Balle();
void Joueur();
void Affiche();
void Victoire();
SDL_Surface *LoadBMP(const char *filename)//Du tutorial de [DmX]
{
SDL_Surface *temp, *image;
temp=SDL_LoadBMP(filename);
image=SDL_DisplayFormat(temp);
SDL_FreeSurface(temp);
return image;
}
int main(int argc,char** argv)
{
short i;//Pour la vitesse de la balle.
short j;//Pour la vitesse du jeu.
Initialisation();
Chargement();
Introduction();
/ /while(Continue_Game)
/ /{
/ /Chargement_Niveau();
/ /Boucle principale
/ /while(Playing_Game)
/ /{
/ /while(j<=Vitesse)
/ /{
/ /void Balle();
/ /void Joueur();
/ /j++;
/ /}
/ /void Affiche();
/ /void Victoire();
/ /}
/ /}
return 0;
}
void Initialisation()
{
/ /Pour SDL
atexit(SDL_Quit);
screen=SDL_SetVideoMode(480, 360, 24, SDL_DOUBLEBUF|SDL_HWSURFACE);
SDL_WM_SetCaption("Casse brique par pandamark ou inconnu[pure]", NULL);
SDL_ShowCursor(0);
/ /Pour fmod
FSOUND_Init(44100, 4, 0);
}
void Chargement()
{
int g;
/ /Des images
intro=LoadBMP("images/intro.bmp");
raquette=LoadBMP("images/raquette.bmp");
balle=LoadBMP("images/balle.bmp");
for(g=0;g<10;g++)
{
briqueR[g]=LoadBMP("images/briqueR.bmp");
briqueG[g]=LoadBMP("images/briqueR.bmp");
briqueB[g]=LoadBMP("images/briqueR.bmp");
briqueS[g]=LoadBMP("images/briqueR.bmp");
}
/ /De la musique et des sons
sound1=FSOUND_Sample_Load(FSOUND_FREE, " sons/bounce1.midi", 1, 0, 1);
sound2=FSOUND_Sample_Load(FSOUND_FREE, " sons/bounce2.midi", 0, 0, 1);
//Backround_Music=FSOUND_Stream_OpenFile("sons/mu
sic.midi", FSOUND_LOOP_NORMAL, 0);
}
void Introduction()
{
bool done;
SDL_BlitSurface(intro, NULL, screen, &);
SDL_Flip(screen);
debut=SDL_GetKeyState(NULL);
while(!done)
{
while(SDL_PollEvent(&))
{
switch(Debut.type)
{
case SDL_KEYDOWN:
if(debut[SDLK_ESCAPE])done=true;
break;
}
}
}
SDL_FreeSurface(intro);
SDL_Delay(500);
}
Bon voila je viens de corriger un bon nombre d´erreur et puis tout contant je lance l´exe puis mechament windows renvoie une erreur.L´erreur m´a l´air differente de mon erreur du int main(int argc, char** argv) et merci d´avance.
P.S:Si vous comprenais mal c´est normal j´explique mal.
ca a rien a voir avec le c ou le c++, juste une question je connais un peu le C et je veut apprendre le visual basic il me faut kel logiciels????
visual studio fera l´affaire, VB est inclut dedans.
C´est quoi une recherche dichotomique ? ?
inconnu[pure] > désolé, pas le temps de tout analyser, faut que tu cibles l´erreur
et je t´aiderai !
[]king[] > une recherche dichotomique, c´est une recherche méthodique qui consiste a diviser par 2 resursivement quand tu sais que ta liste est dans l´ordre :
un exemple :
tu as une liste triée de 8 nombres:
1 6 9 10 15 18 22 27
tu recherches si y´a le nombre 22.
recherche lineaire, tu regardes les nombres 1 par 1 :
1 . .. non
6 . .. non
9 . .. non
10 . .. non
15 . .. non
18 . .. non
22 . .. oui ! !
Hop : tu as trouvé en 7 coups
maintenant, recherche dichotomique, tu cherches le centre ( tu divises par 2)
1 6 9 10 15 18 22 27
le centre est 15 ( nombre du milieu)
22 > 15 --> tu regardes que a droite :
18 22 27
centre : 22
22 = 22
trouvé ! !
2 coups...
Alors on ne peut utiliser cette methode que si nos elements sont en ordre coroissant ou bien decroissant ?
Et si on veut trouver un element dans un tableau en desordre ? Apart comparer un par un .
Merci ![]()
Il n´y a pas vraiment d´erreur dans le compilateur mais au lancement de l´application il affiche une fenetre noir 480x360 et bloc avant d´afficher l´image donc j´en conclue que l´erreur est entre la ligne:
-screen=SDL_SetVideoMode(480, 360, 24, SDL_DOUBLEBUF|SDL_HWSURFACE);
et cette ligne:
-SDL_BlitSurface(intro, NULL, screen, &);
Voila merci d´avance.
Ouais , c´est lourd les ecrans noirs , plus encore que la compilation parceque on voit pas d´où viennent les erreurs . ..
la , c´est peut etre qu´il faut faire un lockscreen avant d´afficher l´image ( non c´es pour les pixels ca . . mouais ) ou peut etre que le mode 24 bbp n´est pas supporte .
essaye de mettre 16 ou 0 pour voir ?
Ok,merci j´essaierais quand je serais a ma maison