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

Probleme SDL

jul38
jul38
Niveau 6
09 janvier 2005 à 16:15:05

bjr,
Voila j´ai dev c++ 4.9.8.0,et j´ai installé toutes les trucs pour la sdl et j´ai mis -lmingw32 -lSDLmain -lSDL dans l´editeur de lien.
Mais il me marque toujours une erreur :

[Linker error] undefined reference to `SDl_Flip´
et je ne vois pas d´ou cela peux venir.

MERCI A CEUX QUI ME REPONDRONS

thesuperbest
thesuperbest
Niveau 8
09 janvier 2005 à 16:25:21

Montre nous ton code.

jul38
jul38
Niveau 6
09 janvier 2005 à 16:26:30

Bon en fait sa marche, j´ai enlevé sdl_flip et compiler et apres j´ai rajouté sdl_flip et sa marche.
Mais j´ai un autre probleme avec mon code.
la fenetre sdl s´affiche mais tout reste bloqué,que faire?

Ptival
Ptival
Niveau 10
09 janvier 2005 à 16:27:13

SDL_Flip...Ca fait pas partie de SDL_image pourtant..Ca devrait marcher...

Est-ce que ta main est bien comme ça :

int main ( int argc, char *argv[])

? ??

Et tu as bien inclus SDL.h ?

Si oui, alors jvois pas où est le problème Oo

Ptival
Ptival
Niveau 10
09 janvier 2005 à 16:27:33

Arf chuis en retard > _<

jul38
jul38
Niveau 6
09 janvier 2005 à 16:29:29
  1. include < stdlib.h>
  2. include < SDL/sdl.h>
  3. include < stdio.h>

SDL_Rect rballe={512,380,0,0}; / *variables des positions raquettes et balle*/

SDL_Rect rraquet1={0,350,0,0};
SDL_Rect rraquet2={1000,350,0,0};
int sens1, sens2, scorep, scoreo, last_time;
/ *variables score et sens balle*/
void collision();
void loadimage();
void affiche();
void deplacement();
void score();
void ordinateur();
void joueur();
void sync_fps();

SDL_Surface *Screen, *firstscreen, *balle, *raquette1, *raquette2; / *liste des images*/
SDL_Event event; / * les events*/

int main(int argc, char *argv[])
{
initialisation();
while(1) / * boucle principale*/
{
ordinateur();
deplacement();
joueur();
collision();
score();
affiche();
sync_fps();
SDL_Flip(Screen);

}

system("PAUSE");
return 0;
}

void initialisation()
{
SDL_Init(SDL_INIT_VIDEO);
Screen=SDL_SetVideoMode(1024, 768, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);
SDL_ShowCursor(0);
}

void loadimage()
{ / *charge les images*/
balle=SDL_LoadBMP("balle.bmp");
raquette1=SDL_LoadBMP("raquet1.bmp");
raquette2=SDL_LoadBMP("raquet2.bmp");
firstscreen=SDL_LoadBMP("scene.bmp");

/ * les mets au format*/
balle=SDL_DisplayFormat(balle);
raquette1=SDL_DisplayFormat(raquette1);
raquette2=SDL_DisplayFormat(raquette2);
firstscreen=SDL_DisplayFormat(firstscreen);
}

void joueur()
{ / * la cest la commande du joueur*/
if ( SDL_PollEvent(&))
{
switch(event.type)
{
case SDL_QUIT:

break;

case SDL_KEYDOWN:
{
Uint8 *keys = SDL_GetKeyState(NULL);
if ( keys[SDLK_UP])
{
rraquet1.y=20+rraquet1.y;
break;
}
if ( keys[SDLK_DOWN])
{
rraquet1.y=rraquet1.y-20;
break;
}
}
}
}

}

void ordinateur()
{ / * l´ordinateur se deplace selon les coordonnées de la balle*/
if(rballe.y>rraquet2.y)
{
rraquet2.y=rballe.y;

}
if(rballe.y<rraquet2.y)
{
rraquet2.y=rballe.y;

}
else
{
rraquet2.y=rballe.y;
}
}

void deplacement()
{/* different sens de la balle*/
if ( sens1==0)
{
rballe.y=rballe.y++;
rballe.x=rballe.x--;

}
if(sens1==1)
{
rballe.y=rballe.y--;
rballe.x=rballe.x++;
}
if ( sens2==0)
{
rballe.x=rballe.x--;
rballe.y=rballe.y--;
}
if(sens2==1)
{

rballe.x=rballe.x++;
rballe.y=rballe.y++ ;
}
}

void collision()
{/*on gere les collisions avec le mur et les raquettes,on change donc le sens de balle*/
if(rballe.y<0 && rballe.x>512)
{
sens1=0;
}
if(rballe.y<0 && rballe.x<512)
{
sens2=0;
}
if(rballe.y>768 && rballe.x<512)
{
sens1=1 ;
}
if(rballe.y>768 && rballe.x<512)
{
sens2=1;
}
if(rballe.x==rraquet1.x && rballe.y==rraquet1.y)
{
sens2=0 ;
}
if(rballe.x==rraquet2.x && rballe.y==rraquet2.y)
{
sens2=1 ;
}

}
void score()
{
if ( rballe.x>=0) / *si le joueur ne rattrape pas la balle on remet a O*/
{
scoreo=scoreo+1;
rballe.y=380;
rballe.x=512;
sens2=0;
}
if(rballe.x<=1020)
{
scorep=scorep+1;
rballe.y=380;
rballe.x=512;
sens1=1;
}

}

void affiche()
{/*réaffiche les positions*/
SDL_BlitSurface(firstscreen,NULL,Screen,NULL);

SDL_BlitSurface(raquette1,NULL,Screen,&1);

SDL_BlitSurface(raquette2,NULL,Screen,&2);

SDL_BlitSurface(balle,NULL,Screen,&);

}

void sync_fps()
{ / *ralentissment*/
if ( SDL_GetTicks() > last_time + 50)
{
last_time = SDL_GetTicks();
SDL_Delay(50);
}
}

C´est mon premier jeu donc je pense qu´il y a encore plein de fautes

jul38
jul38
Niveau 6
09 janvier 2005 à 16:36:42

apres reflexion,il me semble qu´il me manque des strcuture,nan?car sdl rect les détruits

Ptival
Ptival
Niveau 10
09 janvier 2005 à 16:38:11

Le prob vient surement du fait que tu ne lances nulle part la fonction loadimage...Donc après ton jeu blitte des surfaces vides ( ou bien si il se ferme, consulte le stderr.txt qui devrait être apparu dans le dossier de l´exe, il te dira l´erreur)

jul38
jul38
Niveau 6
09 janvier 2005 à 16:54:43

ah oui effectivement elle n´apparait pas dans la main,j´ai meme pas fait attention mais un autre probleme est survenu.
La balle ne bouge pas et l´ecran sa on le voisen scintillant.

Darkgift
Darkgift
Niveau 9
09 janvier 2005 à 16:57:43

y a pas des sites où ils apprenent les bases du C++

Ptival
Ptival
Niveau 10
09 janvier 2005 à 17:02:48

Si la balle bouge pas je crois que c´est parce que tu n´as pas initialisé sens1 et sens2, donc elles ont une valeur farfelue ( celle de la donnée placée à cette endroit de la mémoire avant que tu ne crées la variable)

L´écran scintillant c´est bizarre par contre...Normalement si tu as mis le double buffering ça en devrait pas arriver...Tu es sur que tout est bien blitté à l´écran à chaque tour de la main ?

jul38
jul38
Niveau 6
09 janvier 2005 à 17:14:08

< donc pour la balle il faut que j´inistialise les variables sens1 et sens2.

Blitter l´ecran,tu veux dire quoi par la,il faut utiliser sdl_flip nan?

Ptival
Ptival
Niveau 10
09 janvier 2005 à 17:15:12

Non laisse tomber ça c´est bon...

Alors sinon toujours les mêmes problèmes ?

jul38
jul38
Niveau 6
09 janvier 2005 à 17:20:13

euh pour l´ecran c´est bon,c´etait un probleme avec mon image.
lol oui encore d´autre probleme.
Mtn je ne peux plus bouger

jul38
jul38
Niveau 6
09 janvier 2005 à 17:26:54

Je crois que j´ai mal du afficher les image ou alors il faut les placer autrement ds le main, car tout semble bloque,l´arriere doit les influencer

jul38
jul38
Niveau 6
09 janvier 2005 à 17:46:15

Ptival par hasard tu n´a pas msn?
J´ai vu ton jeu le shoot em up,il est super bien fais,en toutcas j´ai tjr les meme prob,j´ai est de mettre l´affichage des images de partt mais rien

Ptival
Ptival
Niveau 10
09 janvier 2005 à 18:45:22

( Mon pseudo sans majuscules)@hotmail.com pour me contacter sur MSN ( J´mets pas l´adresse direct pour éviter le spam)

jul38
jul38
Niveau 6
09 janvier 2005 à 20:52:31

Merci ptival.
Bon j´ai toujours des problemes avec mon pong, l´ecran se fige.

JeanYvesYves
JeanYvesYves
Niveau 10
10 janvier 2005 à 09:30:10

enleve ta fonction de sync() elle t´embete + qu´autre chose déja :)
ensuite, ton appel loadimage que tu as rajouté, tu l´as bien mis hors de la boucle ?
Moi j´ai peur que ton écran ne soit jamais effacé : que tu vois la trace de ta balle, par que tu n´efface jamais ton écran.

décris ton " écran qui scintille"
si ça ne bouge pas, essaie pour le moment de faire avancer ta balle avec +1 en x et en y a chaque frame, déja. Apres, c´est peut etre un probleme de lecture des touches.

JeanYvesYves
JeanYvesYves
Niveau 10
10 janvier 2005 à 09:32:03

autant pour moi pour l´écran pas effacé : tu geres ça avec ton firstscreen.

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