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

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 19:44:35

Coucou
Jean Yves Yves, en fait dans ton tuto tu expliques comment écrire dans un docu txt, mais j´aimerais savoir comment lire dedans... :-) stp
MERCI

Koyo-K
Koyo-K
Niveau 9
22 février 2005 à 19:58:14

J´ai une erreur, " song : undeclared identifier" dans la fonction Exit(), et je vois vraiment comment le déclarer ( il l´est déjà dans Init(), ça fait pas beau de le déclarer 2 fois) ; et quand je l´ai déclaré dans le main(), il me sort qu´il est pas déclaré dans Init().
Au passage, comment afficher une chaîne de caractères avec printf ? C´est vraiment pas fait pour aider à la mémorisation les %d, %...

void Init()
{
FSOUND_SAMPLE* song;

FSOUND_Init(44100, 32, 0);

song = FSOUND_Sample_Load(FSOUND_FREE, " musique.mp3", FSOUND_LOOP_NORMAL, 0, 0);

FSOUND_PlaySound(FSOUND_FREE, song);
}

void Exit()
{
FSOUND_Sample_Free(song);
FSOUND_Close();
}

int main()
{
Init();
system("PAUSE");
Exit();
return 0;
}

dnob700
dnob700
Niveau 10
22 février 2005 à 20:05:55

jejej : je sais " bien" qu´on peut choisir la surface à blitter.
Ma question c´était est-ce qu´il faut le faire, où est ce que la lib le gère déjà tout seul ( voir ma question plus haut pour de plus ample détail).

une autre question : pourquoi la SDL veut absolument la fonction main déclaré comme ça :
int main(int argc, char *argv[])
c´est plutot ennuyeux.

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 20:38:22

SVP, jyy ou autres . ..
pliz repondez...
:)
:-)
:o))

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 22:08:18

Bon c´est pas grave, autre chose,
j´ai ce code là, mais quand je l´éxécute, jai l´image d´un bonhomme(jusque là normal) qu´on promène sur le screen bleu ( normal), mais ça me laisse la trace du bonhomme sur chaque 30 pixels, svp heeeelp

le code en question:

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

int main(int argc, char *argv[])
{
SDL_Surface *screen, *image;
SDL_Rect dst, dstblue;
SDL_Event event;
Uint8 *keys;
int tuxX = 50, tuxY = 50;
bool done = false;
if(SDL_Init(SDL_INIT_VIDEO) == -1)
{
printf("Can´t init SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
screen = SDL_SetVideoMode(1000, 730, 16, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 255));
if(screen == NULL)
{
printf("Can´t set video mode: %s\n", SDL_GetError());
exit(1);
}
image = SDL_LoadBMP("warrior-test.bmp");
if(image == NULL)
{
printf("Can´t load image of tux: %s\n", SDL_GetError());
exit(1);
}
dst.w = image->w;
dst.h = image->h;
dstblue.w = image->w + 1;
dstblue.h = image->h + 1;
SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 255, 0, 255));
while(!done)
{
while(SDL_PollEvent(&))
{
switch(event.type)
{
case SDL_QUIT:
done = true;
break;
}
}
keys = SDL_GetKeyState(NULL);
if(keys[SDLK_UP])
{
if(tuxY > 10)
tuxY-=30;
SDL_Delay( 150 ) ;
}
if(keys[SDLK_DOWN])
{
if(tuxY < 700 - image->h)
tuxY+=30;
SDL_Delay( 150 ) ;
}
if(keys[SDLK_RIGHT])
{
if(tuxX < 900 - image->w)
tuxX+=30;
SDL_Delay( 150 ) ;
}
if(keys[SDLK_LEFT])
{
if(tuxX > 10)
tuxX-=30;
SDL_Delay( 150 ) ;
}
dst.x = tuxX;
dst.y = tuxY;
dstblue.x = tuxX - 1;
dstblue.y = tuxY - 1;
SDL_FillRect(screen, &, SDL_MapRGB(screen->format, 0, 0, 255));
SDL_BlitSurface(image, NULL, screen, &);
SDL_Flip(screen);
SDL_UpdateRect(screen, 0, 0, 0, 0);

}
SDL_FreeSurface(image);
return 0;
}

En fait j´aimerais que vous modifiez mon code, et que vous m´expliquiez ce qui va pas la dedans
( si possible :) )
merci bcp

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 22:10:17

ps: je travaille avec sdl(vous l´aurez compris)
:-)

inconnu[pure]
inconnu[pure]
Niveau 6
22 février 2005 à 22:34:43

Il faut que tu modifies cette partie de code:
dstblue.w = image->w + 1;
dstblue.h = image->h + 1;

par ça:
dstblue.w = image->w + 2;
dstblue.h = image->h + 2;

mais l´explication je ne peux pas te la fournir.Ca serai trop dur à l´écrit.

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 23:01:19

euuu tu t´y connais toi en c++, c´était pas toi, ya deux jours qui disait " cest quoi le c++?"

Enfin . .. en tout cas ça marche pas

Mais, j´ai quand même des doutes sur toi :)
:o))

Koyo-K
Koyo-K
Niveau 9
22 février 2005 à 23:05:04

Toute manière tu t´en fou, tu l´essaies juste pour voir si ça marche et le reste walou :nah:

JeanYvesYves
JeanYvesYves
Niveau 10
22 février 2005 à 23:05:06

salut !

Tout d´abord amis de la SDL, jetez un oeil la dessus, ça vous intéressera peut etre :
https://www.jeuxvideo.com/forums/1-31-8352573-1-0-1-0-0.htm

Dnob > en effet, dans ce cas, il serait plus rapide de blitter juste la partie du décor sur la balle pour l´effacer, puis de reblitter la balle, car l´exemple blit bourrinement tout.

Cependant, dans des programmes plus complexes, ou il y aurait, evidemment, + d´animation, donc + d´objets, il serait moins rapide de faire cela, car on aurait plusieurs blit a faire, avec des if au milieu, de la lecture mémoire d´anciennes positions qu´il faudrait stocker ( contraignant), et reblitter pour rétablir le fond, ce serait moins rapide qu´un blit total du fond.
Il n´y a donc que dans ce cas ou on a qu´une seule balle qui bouge qu´on aurait tendance a faire comme tu dis, cependant, l´animation est tellement pauvre que ça ne ralentit pas la machine, donc en général, on ne le considere pas comme un cas particulier :)

Hebus > Pour lire un fichier, j´essaierai de faire le tuto un de ces 4 :)

Rikkuman4
Rikkuman4
Niveau 10
22 février 2005 à 23:05:06

lol

Rikkuman4
Rikkuman4
Niveau 10
22 février 2005 à 23:06:10

c´est de la triche jyy ^^
j´ai effectivement vue ton topic sur le sdl et je pence que sa m´aidera plus tard merci :-)))

jejej
jejej
Niveau 9
22 février 2005 à 23:06:33

On pourra le voir ton pong quand il sera fini ?

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 23:11:01

ok jyy merci.
:o))

Koyo-K
Koyo-K
Niveau 9
22 février 2005 à 23:16:29

JYY tu m´as oublié :snif: ( cf mon post sur fmod page précédente) Fmod.

JeanYvesYves
JeanYvesYves
Niveau 10
22 février 2005 à 23:24:14

excuse moi Koyok :)

En fait, j´ai regardé :
tu déclares song uniquement dans ta fonction init.
Donc il n´existe pas dans ton autre fonction.
dans un premier temps, si tu ne veux pas te casser la tete, déclare le en global :
c´est a dire que tu la déclares hors des fonctions ( au dessus)

JeanYvesYves
JeanYvesYves
Niveau 10
22 février 2005 à 23:26:52

Rikkuman4 > Il n´y a pas de triche :)
Les fonctions, ça sert justement a se fabriquer des outils personnalisés, que l´on trouvera agréable et surtout utile d´utiliser. Une fois qu´on s´est fait les fonctions, on se fait plaisir !
Et ça a l´avantage de rendre les difficultés transparentes, c´est a dire que par exemple, gérer le clavier avec SDL est pénible, parce qu´il y a une histoire de file d´attente, etc...

Moi je me suis dit " ça, ça ne me plait pas, je vais donc me faire une fonction qui me conviendra mieux"
A l´intérieur de cette fonction, je gere cette fameuse file, parce que ça marche comme ça, mais je fais en sorte de pouvoir l´utiliser sans meme me douter qu´il s´agit d´une file...
On appelle ce genre de pratique la transparence.

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
22 février 2005 à 23:28:26

Et moi, et moi . ... :lol:
:)
Nan, mais dans mon code de la page précédente, svp comment je peux faire pour enlever ces " trainées dégeulasses" ( pour utiliser le voc de JYY :rire: )
stp JYY

ps: je sais que le code est long et chiant à lire . ..
mais svp quand même

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
23 février 2005 à 00:05:56

personne peut m´aider :snif: ?

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 00:16:06

le tuto n´est pas fait pour enlever les trucs dégueulasses :)
pour les enlever, tu verras par la suite qu´il faut blitter de partout sur l´écran, ne te fait pas de soucis pour ça ! :)

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