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++

Extra-terrestre
Extra-terrestre
Niveau 10
01 août 2006 à 21:53:50

Fvirtman :d) très intéressantes les annexes :)
par contre y´a moyen de recréer le type bool en C en passant juste avec typedef ?
et qu´est ce que le registre EAX ?

didic10 :d) tu dois sauter quelques lignes à la fin de ton code :)

didic10
didic10
Niveau 4
01 août 2006 à 21:56:28

ok merci mais je ne peux pas tester mon programme et en bas c´est écrit

Project : SDL Application
Compiler : GNU GCC Compiler (called directly)
Directory : C:\Projets C++\

--------------------------------------------------
------------------------------
Switching to target: default
Compiling: Untitled1.c
Linking console executable: SDLapp.exe
.objs\Untitled1.o:Untitled1.c:(.text+0x1fc): undefined reference to `pause´
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)

Extra-terrestre
Extra-terrestre
Niveau 10
01 août 2006 à 22:02:24

si ´pause´ est une fonction t´as oublié le protoype, si c´est une variable t´as oublié de la déclarer

didic10
didic10
Niveau 4
01 août 2006 à 22:12:27

Pourtant je n´ai fait que copier coller le code du site du zero O.o que voici

int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
SDL_Rect position;
int i = 0;

SDL_Init(SDL_INIT_VIDEO);

ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE);

for (i = 0 ; i <= 255 ; i++)
lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0, 0, 0, 0);

SDL_WM_SetCaption("Mon de´grade´ en SDL !" , NULL);

SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));

for (i = 0 ; i <= 255 ; i++)
{
position.x = 0;
position.y = i;
SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i));
SDL_BlitSurface(lignes[i], NULL, ecran, &position);
}

SDL_Flip(ecran);
pause();

for (i = 0 ; i <= 255 ; i++)
SDL_FreeSurface(lignes[i]);
SDL_Quit();

return EXIT_SUCCESS;
}

ou meme ici
http://www.siteduzero.com/tuto-3-5300-1-creation-d-une-fenetre-et-de-surfaces.html#ss_part_4
Ca me met la meme erreur avec d´autres codes aussi

Extra-terrestre
Extra-terrestre
Niveau 10
01 août 2006 à 22:17:24

il faut pas juste copier la fonction main, y´a aussi la fonction pause dont tu dois écrire le protoyype avant la fonction main.

didic10
didic10
Niveau 4
01 août 2006 à 22:21:52

ok merci Extra-terrestre sa marche j´avais oublié quelques lignes c´est sur que sa ne pouvait pas marcher -_-

godrik
godrik
Niveau 30
01 août 2006 à 22:25:48

"par contre y´a moyen de recréer le type bool en C en passant juste avec typedef ? "
Ca n´existe pas typedef en C.

"et qu´est ce que le registre EAX ? "
C´est le registre qui stocke la tete de pile

godrik
godrik
Niveau 30
01 août 2006 à 22:46:58

"C´est le registre qui stocke la tete de pile"
Heu, j´ai craqué c´est l´accumulateur. Quand la donnée renvoyé par une fonctin fait moins de 4 octets, elle est stocké dans l´accumulateur

bowser10
bowser10
Niveau 10
02 août 2006 à 17:37:57

question SDL pour moi :) :

j´aimerais savoir comment on peut faire des collisions avec la balle su un mur ba gauche ou a droite parce que je fais un jeu de casse briques

voici mon code de la fonction jouer :

void Jouer(SDL_Surface* Ecran)
{
SDL_Surface *Barre[3] = {NULL};
SDL_Surface *Balle = NULL, *Brique = NULL, *Mur = NULL;
SDL_Rect PositionBarreG, PositionBarreD, PositionBarreC, PositionObjet;
SDL_Event Jouer;
int Continuer = 1;
int TempsPrecedent = 0, TempsActuel = 0;

PositionBarreG.x = 300;
PositionBarreG.y = 580;
PositionBarreC.x = 325;
PositionBarreC.y = 580;
PositionBarreD.x = 344;
PositionBarreD.y = 580;
PositionObjet.x = PositionBarreC.x;
PositionObjet.y = 570;

Barre[GAUCHE] = IMG_Load("raqGauche.png");
Barre[CENTRE] = IMG_Load("raqCentre.png");
Barre[DROITE] = IMG_Load("raqDroite.png");

Balle = IMG_Load("balle.png");

SDL_ShowCursor(SDL_DISABLE);

SDL_EnableKeyRepeat(1, 0);

while (Continuer)
{
SDL_PollEvent(&Jouer);
switch(Jouer.type)
{
case SDL_QUIT:
Continuer = 0;
break;
case SDL_KEYDOWN:
switch(Jouer.key.keysym.sym)
{
case SDLK_ESCAPE:
Continuer = 0;
break;
case SDLK_LEFT:
PositionBarreG.x--;
PositionBarreC.x--;
PositionBarreD.x--;
break;
case SDLK_RIGHT:
PositionBarreG.x++;
PositionBarreC.x++;
PositionBarreD.x++;
break;
}
break;
}

TempsActuel = SDL_GetTicks();
if (TempsActuel - TempsPrecedent > 30)
{
PositionObjet.x++;
PositionObjet.y--;
TempsPrecedent = TempsActuel;
}
else
{
SDL_Delay(30 - (TempsActuel - TempsPrecedent));
}

SDL_FillRect(Ecran, NULL, SDL_MapRGB(Ecran->format, 0, 0, 0));

SDL_BlitSurface(Barre[GAUCHE], NULL, Ecran, &PositionBarreG);
SDL_BlitSurface(Barre[CENTRE], NULL, Ecran, &PositionBarreC);
SDL_BlitSurface(Barre[DROITE], NULL, Ecran, &PositionBarreD);
SDL_BlitSurface(Balle, NULL, Ecran, &PositionObjet);

SDL_Flip(Ecran);
}
SDL_FreeSurface(Barre[GAUCHE]);
SDL_FreeSurface(Barre[CENTRE]);
SDL_FreeSurface(Barre[DROITE]);
SDL_FreeSurface(Balle);
SDL_FreeSurface(Brique);
SDL_FreeSurface(Mur);
}

Merci beaucoup :-)

godrik
godrik
Niveau 30
02 août 2006 à 17:58:14

bowser, la FAQ donne une adresse ou coller son code histoire qu´il soit plus simple a lire...

Usuellement dans un jeu on sépare le rendu graphique de "la physique".
dans la physique les objets sont ramene a des point, des cercles, des rectangles, ou composition de ces formes. A chaque objet est associé une position et une vitesse. pour savoir si un objet O mobile de vecteur de deplacement V touche un un mur statique de X a Y on regarde si [ O;O+V ] inter [ X; Y ] est vide ou non.
Pour cela on trouve les équations des deux droites, on calcul le point d´intersection et l´on vérifie qu´il est bien sur les deux segments dont on veux tester la collision.

(je devrais ecrire un article la dessus etant donné le nombre de fois que l´on raconte ca ici)

Qosimo
Qosimo
Niveau 37
02 août 2006 à 18:00:41

Euh,

plus haut j´ai lu quelque chose au sujet de typedef. Ca sert à quoi exactement ?

Lapintade
Lapintade
Niveau 30
02 août 2006 à 18:18:50

a definir un nouveau type.

Qosimo
Qosimo
Niveau 37
02 août 2006 à 22:42:00

Et ça fonctionne comment ? On entre un nom et la taille qu´aura la variable ?

godrik
godrik
Niveau 30
03 août 2006 à 01:20:03

non tu dis par rapport a quel type est elle equivalente.

typedef toto int;
(ou l´inverse peut etre)

Extra-terrestre
Extra-terrestre
Niveau 10
03 août 2006 à 11:38:02

ouaip c´est l´inverse
typedef int toto;

"Ca n´existe pas typedef en C."
pourtant ça marche en C :)

godrik
godrik
Niveau 30
03 août 2006 à 14:11:00

ah ouais on dirait que j´ai craqué

sangohan42
sangohan42
Niveau 9
03 août 2006 à 16:45:37

Désolé de poster ca ici mais je veux seulement dire que je cherche des co-équipier dans la création d´un petit rpg en C avec SDL.

Si ca intéresse quelqu´un (je code mois meme en C et je pense avoir beaucoup de mal a coder ce jeu tout seul aussi simple soit il).

mon msn : sangohan42@hotmail.fr

Merci beaucoup et encore désolé

Archipel
Archipel
Niveau 5
03 août 2006 à 21:04:17

Salut
j´ai un petit probleme avec mon code :

char nom[100];

void Demander(const char* texte, long* pointeur);

void Demander(const char* texte,long* pointeur)
{
char entree;
printf("%s\n",texte);
scanf("%s", entree);
*pointeur = entree;
}

...

et quand j´appelle la fonction

Demander("Quel est votre nom ?" , &nom);

et ca me dit cannot convert "char[*][100]" to "long int"

merci d´avance

Qosimo
Qosimo
Niveau 37
03 août 2006 à 21:40:41

ok, merci :)

Fvirtman
Fvirtman
Niveau 10
03 août 2006 à 22:13:36

Archipel >

faut caster :

Demander("Quel est votre nom ?" , (long*)&nom);

ou alors, changer le prototype en pointeur générique :

void Demander(const char* texte, void* pointeur);

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