CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

jejej
jejej
Niveau 9
05 février 2005 à 23:57:30

Ouais , j´ai lu ca dans le sommaire de mon bouquin , mais je suis pas encore rendu jusqu´ici :)

nan , je voulais dire , j´ai un

  1. define NombreCase 7

et je fait mon tableau comme ca en réalite
int Plateau[NombreCases][NombreCases]

ce qui me permettrait de faire varier la taille facilement

jejej
jejej
Niveau 9
05 février 2005 à 23:58:51

Bon , a+ , merci beaucoup a toutes vos réponses , de toute manière c´est pas fini , parceque l´ai ca m´a l´air bien compliqué , et meme si je me suis un peu documente , je compte repasser bientot ^^

Ruffi
Ruffi
Niveau 9
06 février 2005 à 03:16:52

le mieux est d´utiliser un tableau simple :

int plateau [ sizex * sizey ];

Si tu veux acceder a l´element {x,y} :

int value = plateau[ x + y*sizex ];

inconnu[pure]
inconnu[pure]
Niveau 6
06 février 2005 à 08:54:06

Bon voila mon code pour le debut dans pong il fonctionnait bien avant(la balle bougais,sa gerais les collisions) mais la rien se passe je comprends pas.Est ce que vous pouvais m´aider

  1. include < SDL/SDL.h>
  2. include < stdlib.h>
  3. include < time.h>

/ /#include < fmod.h>

/ /#pragma comment(lib,"libfmod.a")

using namespace std;

/ *

    • Déclaration de structure rectangulaire.
  • /

SDL_Rect balleR, Raquette1, Raquette2;

/ *

    • Déclaration d´image à afficher.
  • /

SDL_Surface *screen, *balle, *raquette1, *raquette2;

/ *

    • Déclaration d´evenement.
  • /

SDL_Event event;

/ *

    • Déclaration du sons et de la musique
  • /

/ /FSOUND_STREAM *Backround;
/ /FSOUND_SAMPLE *Bounce;

/ *

    • Déclaration de variable globale.
  • /

short Vitesse_du_jeu=3;//Pour la vitesse de déplacement des objets
signed short B_DirectionX=1;//Pour la direction tion de la balle sur l´axe X. 1="gauche" -1="droite"
signed short B_DirectionY=-1;//Pour la direction tion de la balle sur l´axe Y.
short int Niveau_Difficulte;//0="facile" 1="normal" 2="difficile" 3="immbatable".
bool Done=false;//Boucle pour le jeu
short Raquette1X=Raquette1.x;
short Raquette1Y=Raquette1.y;
short Raquette2X=Raquette2.x;
short Raquette2Y=Raquette2.y;
short BalleX;
short BalleY;
short Rendez_vous;

Uint8 *keys;//Pour les touches.

/ *

    • Déclaration de fontions
  • /

void Initialisation();
void Chargement();
void Joueur();
void Ennemie();
void Balle();
void Affiche();
void Victoire();

int main(int argc,char* argv[])
{
short i;
srand(time(NULL));
/***L´initialisation***/
Initialisation();
Chargement();
Raquette1X=0;
Raquette1Y=0;
Raquette2X=465;
Raquette2Y=0;
balleR.x=230;
balleR.y=150;
BalleX=balleR.x;
BalleY=balleR.y;
//FSOUND_Stream_Play(1, Backround);

/***La boucle de jeu***/
while(!Done)
{
while(i<Vitesse_du_jeu)
{
Joueur();
Ennemie();
Balle();
i++;
}
Affiche();
//Victoire();
}

return 0;
}

void Initialisation()
{
//FSOUND_Init(44100, 2, 0);
atexit(SDL_Quit);
screen=SDL_SetVideoMode(480, 320, 8, SDL_HWSURFACE|SDL_DOUBLEBUF);
SDL_WM_SetCaption("Pong en SDL de inconnu[pure] ou pandamark", NULL);
SDL_ShowCursor(0);
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
}

void Chargement()
{
balle=SDL_LoadBMP("balle.bmp");
raquette1=SDL_LoadBMP("computer.bmp");
raquette2=SDL_LoadBMP("computer.bmp");
SDL_SetColorKey(balle, SDL_SRCCOLORKEY, SDL_MapRGB(balle->format, 255, 0, 255));
Raquette1.w=raquette1->w;
Raquette1.h=raquette1->h;
Raquette2.w=raquette2->w;
Raquette2.h=raquette2->h;
//Bounce=FSOUND_Sample_Load(FSOUND_FREE, " bounce.wav", 0, 0);
//Backround=FSOUND_Stream_OpenFile("Music.mp3", FSOUND_LOOP_NORMAL, 0);
//FSOUND_SetVolume(0, 150);
//FSOUND_SetVolume(1, 150);
}

void Joueur()
{
while(SDL_PollEvent(&))
{
switch(event.type)
{
case SDL_QUIT:
exit(1);
break;

}
}
keys=SDL_GetKeyState(NULL);
if(keys[SDLK_UP])
{
if(Raquette1Y>0)Raquette1Y--;
}
if(keys[SDLK_DOWN])
{
if(Raquette1Y<270)Raquette1Y++;//270
}
if(keys[SDLK_ESCAPE])exit(1);
}

void Ennemie()
{
short i=rand()%50;
short j=rand()%20;
short Rendez_vous;
if(i!=0 && B_DirectionX==-1)
{
if((Raquette2Y+i)>((BalleY+j)))
{
if(Raquette2Y>0)Raquette2Y--;
}
if((Raquette2Y+i)<(BalleY+j))
{
if(Raquette2Y<270)Raquette2Y++;
}
}
}

void Balle()
{
if(B_DirectionX==1)
{
BalleX--;
if(BalleX==0)B_DirectionX=-1;

}
if(B_DirectionX==-1)
{
BalleX++;
if(BalleX==460)B_DirectionX=1;
}
if(B_DirectionY==-1)
{
BalleY--;
if(BalleY==0)B_DirectionY=1;
}
if(B_DirectionY==1)
{
BalleY++;
if(BalleY==300)B_DirectionY=-1;
}

if((BalleX)==(Raquette1X+Raquette1.w) && BalleY>=Raquette1Y && BalleY<=(Raquette1Y+Raquette1.h))
{
B_DirectionX=-1;
//FSOUND_PlaySound(0, Bounce);
}
else if((BalleX)==(Raquette1X+Raquette1.w) && BalleY+20>=Raquette1Y && BalleY+20<=(Raquette1Y+Raquette1.h))
{
B_DirectionX=-1;
//FSOUND_PlaySound(0, Bounce);
}

if((BalleX+20)==(Raquette2X) && BalleY>=Raquette2Y && BalleY<=(Raquette2Y+Raquette2.h))
{
B_DirectionX=1;
//FSOUND_PlaySound(0, Bounce);
}
if((BalleX+20)==(Raquette2X) && BalleY+20>=Raquette2Y && BalleY+20<=(Raquette2Y+Raquette2.h))
{
B_DirectionX=1;
//FSOUND_PlaySound(0, Bounce);
}
}

void Affiche()
{
Raquette1.y=Raquette1Y;
Raquette1.x=Raquette1X;
Raquette2.y=Raquette2Y;
Raquette2.x=Raquette2X;
balleR.x=BalleX;
balleR.y=BalleY;

SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
SDL_BlitSurface(raquette1, NULL, screen, &1);
SDL_BlitSurface(raquette2, NULL, screen, &2);
SDL_BlitSurface(balle, NULL, screen, &);
SDL_Flip(screen);
}

Rikkuman4
Rikkuman4
Niveau 10
06 février 2005 à 09:03:48

bonjours, avez vous un site sur les variable C++ c´est trop complexe :/ merci d´avance

XyTiX
XyTiX
Niveau 8
06 février 2005 à 11:36:04

bon y´a toujours le site de JYY et puis http://bigbozoid.free.fr

jul38
jul38
Niveau 6
06 février 2005 à 12:41:44

Il me semble que tu as mis ta fonction affiche en dehors de ta boucle while donc des images ne peuvent pas bouger.

Mako-
Mako-
Niveau 7
06 février 2005 à 13:17:40

j´ai fait un tutorial d´un site de prog tout simple

/ ///////////////////:

  1. include < windows.h>
  2. include < gl/gl.h>
  3. include < gl/glut.h>
  4. include < math.h>
  1. define WIDTH 640
  2. define HEIGHT 480

void Display();
void Reshape(int,int);
void Idle();
void Init();
void Creer_Cube();

int id_cube=0;
int angle=0;

int main( int argc, char *argv[ ])_
{
glutInit(&,argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); / / mode double buffering + z-buffer

glutInitWindowSize(WIDTH,HEIGHT);
glutInitWindowPosition(0,0);
glutCreateWindow("Scène 3D Animée");

Init();

glutDisplayFunc(Display);
glutReshapeFunc(Reshape);
glutIdleFunc(Idle);

glutMainLoop();
return 0;
}

void Init()
{
glEnable(GL_DEPTH_TEST);
Creer_Cube();
}

void Creer_Cube()
{
id_cube=glGenLists(1);
glNewList ( id_cube,GL_COMPILE);
glBegin(GL_QUADS);
glColor3d(1,0,0);
glVertex3i(1,1,1);
glVertex3i(1,-1,1);
glVertex3i(-1,-1,1);
glVertex3i(-1,1,1);

glColor3d(0,1,0);
glVertex3i(1,1,-1);
glVertex3i(1,-1,-1);
glVertex3i(-1,-1,-1);
glVertex3i(-1,1,-1);

glColor3d(0,0,1);
glVertex3i(1,1,1);
glVertex3i(1,-1,1);
glVertex3i(1,-1,-1);
glVertex3i(1,1,-1);

glColor3d(0,1,1);
glVertex3i(-1,1,1);
glVertex3i(-1,-1,1);
glVertex3i(-1,-1,-1);
glVertex3i(-1,1,-1);

glColor3d(1,1,0);
glVertex3i(-1,1,-1);
glVertex3i(-1,1,1);
glVertex3i(1,1,1);
glVertex3i(1,1,-1);

glColor3d(1,0,1);
glVertex3i(-1,-1,-1);
glVertex3i(-1,-1,1);
glVertex3i(1,-1,1);
glVertex3i(1,-1,-1);

glEnd();
glEndList();
}

void Idle()
{
angle+=5;
if ( angle>360) angle=0;
glutPostRedisplay();
}

void Display()
{
glClearColor(0,0,0,0); / / selectionne la couleur noire ( qui est celle par défaut)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(10,15,15,0,0,0,0,1,0);

glCallList(id_cube);

glPushMatrix();
glRotated(angle,0,1,0);
glTranslatef(0,0,-5);
glScaled(0.5,0.5,0.5);
glCallList(id_cube);
glPopMatrix();

glPushMatrix();
glRotated(angle,0,1,0);
glTranslatef(0,0,5);
glRotated(angle,0,1,0);
glScaled(0.5,0.5,0.5);
glCallList(id_cube);
glPopMatrix();

glutSwapBuffers();
glFlush();
}

void Reshape(int w, int h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION); / / Choisit la matrice de projection
glLoadIdentity();
gluPerspective(45.0,(float) w/h,1.,100.);
glMatrixMode(GL_MODELVIEW); / / on revient sur la matrice MODELVIEW
glLoadIdentity();
}

/ ********************************/

Bon alors l´enuis a la compilation c´est ça :

In function `int main(int, char**)´:
opengl_anim.c:23: error: syntax error before `{´ token
opengl_anim.c:24: error: syntax error before `{´ token
opengl_anim.c:26: error: ISO
C++ forbids declaration of `glutInitDisplayMode´ with no type
opengl_anim.c:26: error: `
int glutInitDisplayMode´ redeclared as different kind of symbol
glut.h:484: error: previous
declaration of `void glutInitDisplayMode(unsigned int)´
opengl_anim.c:28: error: ISO
C++ forbids declaration of `glutInitWindowSize´ with no type
opengl_anim.c:28: error: `
int glutInitWindowSize´ redeclared as different kind of symbol

etc...y´en a 38 en tout.

Bon j´aimerai bien savoir ou est le problèm.

J´ai DevC++.

merci d´avance

chan_47
chan_47
Niveau 10
06 février 2005 à 13:25:18

beuh pk ya personne ki aide en delphi :nah:

Mako-
Mako-
Niveau 7
06 février 2005 à 13:30:10

parce que y´a marqué " aide en C/C++" sur le topic et pas " aide en delphi"

fuzzy_eyebrow
fuzzy_eyebrow
Niveau 9
06 février 2005 à 15:09:58

jejej>> ah! tu parlais d´agrandir statiquement... je pensais que tu parlais d´agranissement dynamique. on est d´accord dans ce cas.

jul38
jul38
Niveau 6
06 février 2005 à 17:07:01

MAKO:
regarde ta ligne 23 :
tu a mis : double buffering + z-buffer
par hasard c´est pas : double buffering + z-buffer ;
tu as oublié le " ;"
enfin je pense,pour ce qui est de l´opengl je connais pas donc je pourrais pas t´aider a ce niveau.

int main( int argc, char *argv[ ])_
et la ya pas le " _" en plus.

Ptival
Ptival
Niveau 10
06 février 2005 à 18:44:54

jul -> J´pense plutôt que c´est la suite de son commentaire qui est parti à la ligne grâce à notre cher JV.com :)

jul38
jul38
Niveau 6
06 février 2005 à 22:27:55

Ah oui effectivement,j´avais pas vu lol.

Koyo-K
Koyo-K
Niveau 9
07 février 2005 à 15:37:57

juste pour le fun : le " f" de printf, veut dire quoi ? function ?

J´en reviens aux pointeurs :hap:
dans mon bouquin, l´auteur dit " une fois initialisé, p permet d´aller aux différents éléments du tableau"
pour avoir une idée de ce à quoi correspond le p :

int Tab[50000]; / / j´exagère un peu
int* p;
p = &[0];

est-ce que ça veut dire que si on fait directement
p = &[3];
ça va pas marcher ?

JeanYvesYves
JeanYvesYves
Niveau 10
07 février 2005 à 15:40:08

f veut dire " formated" c´est a dire, en français " mise en forme"

Sinon, si tu fais p=&[3] tu pointes sur le 4e élément du tableau ( car 0 comtpe)

de ce fait,

p[0] = Tab[3];
p[6] = Tab[9];
p[x] = Tab[x+3];

donc ça marche, mais rien de tel pour t´embrouiller les pédales :)

Koyo-K
Koyo-K
Niveau 9
07 février 2005 à 16:13:45

Ouais c´est bien ce que je pensais que ça marchais vu que quand j´ai essayé de compiler ça allait.
Le truc que je comprenais pas sur l´arithmétique des pointeurs avec le fait que quand c´est un int ça se déplace de 2 octets, j´ai maintenant pigé grâce à mon bouquin ( pour une fois c´est un tuto sur le net qui m´avait embrouillé ^^)

JeanYvesYves
JeanYvesYves
Niveau 10
07 février 2005 à 16:34:31

pour un int, tu decales de sizeof(int) quand tu fais ++
pour un float, tu decales de sizeof(float)
pour un double, tu decales de sizeof(double)

pour un truc, tu decales de sizeof(truc)

:)))

Sinon, un int fait 2 octets sous les vieux compilos, mais 4 sous les récents ; -p

Mais bref, tu as compris le principe :)

inconnu[pure]
inconnu[pure]
Niveau 6
08 février 2005 à 17:48:14

bon voila j´ai fini mon pong mais il est pas super donc je le metterais pas sur internet,donc voila puis je suis passer au casse brique. mais j´ai plusiere probleme dont je comprends rien de rien.

Voila le code(c´est seulement l´introduction au jeu):

  1. include < SDL/SDL.h>
  2. include < fmod.h>
  3. include < stdlib.h>
  4. include < time.h>
  1. pragma comment(lib, " libfmod.a")

/ *

    • Les images
  • /

SDL_Surface *screen, *intro, *fin, *backround, *raquette, *briqueR[10], *briqueG[10], *briqueB[10], *briqueS[10], *balle;

/ *

    • Structure rectangulaire
  • /

SDL_Rect Backround, BalleR, BriqueR[10], BriqueG[10], BriqueB[10], BriqueS[10];

/ *

    • Les sons
  • /

FSOUND_SAMPLE *sound1;//Son pour collisions balle/raquette
FSOUND_SAMPLE *sound2;//Son pour collisions balle/brique

/ *

    • La musique
  • /

FSOUND_STREAM *Backround_Musique;//Musique de fonds

/ *

    • Les events
  • /

SDL_Event event, Debut;

/ *

    • Les touches
  • /

Uint8 *keys, *debut;

/ *

    • Variables globales
  • /

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;

/ *

    • Les fonctions
  • /

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]

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_Steam_OpenFile("sons/music
.midi", FSOUND_LOOP_NORMAL, 0);
}

void introduction()
{
bool done;

SDL_BlitSurface(intro, NULL, screen, NULL);
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_Delay(3000);
}

SDL_Surface *LoadBMP(const char *filename)
{
SDL_Surface *temp, *image;
temp=SDL_LoadBMP(filename);
image=SDL_DisplayFormat(temp);
SDL_FreeSuface(temp);
return image;
}

Voici les erreurs:
121 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
implicit declaration of function `int LoadBMP(...)´

121 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
assignment to `SDL_Surface *´ from `int´ lacks a cast

122 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
assignment to `SDL_Surface *´ from `int´ lacks a cast

et sa ce repete tout le long de la fonction chargement.

136 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
`Backround_Music´ undeclared ( first use this function)

136 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
implicit declaration of function `int FSOUND_Steam_OpenFile(...)´

168 C:\Documents and Settings\Thierry\Bureau\Petit programme\casse-brique.cpp
implicit declaration of function `int SDL_FreeSuface(...)´

Voila c´est long mais je ne peux pas regler sa tout seul.

JeanYvesYves
JeanYvesYves
Niveau 10
08 février 2005 à 17:52:05

normal :
( je te traite que la 1ere erreur)
au moment ou tu arrives ligne 122, il lit un " LoadBMP", et, a cet endroit, il ne la connait pas...

Met la fonction au dessus.
( ou alors sinon, prototype la :
en haut, juste apres les #include, tu mets :

SDL_Surface *LoadBMP(const char *filename);

sans rien d´autre :
ce qui veut dire " je vais, plus bas, faire une fonction LoadBMP, donc si tu vois que je l´appelle, tu ne gueule pas, tu verras plus tard"

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment