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

inconnu[pure]
inconnu[pure]
Niveau 6
23 février 2005 à 11:25:21

Je ne comprends pas j´ai poutant bien fait voici le code du main.cpp:

-------------------------------------------------

  1. include " FunnyDuck.h"
  2. include < time.h>
  3. include < fstream>

short i=0;
FunnyDuck *Game;
/ /Création des Sprites
Sprite *Skull[10];
SDL_Surface *surface, *Skullhead;
ofstream Error2;

//------------------------------------------------
-----------------
/ / FunnyDuck Main

//------------------------------------------------
-----------------
void GameInitialize()
{
Game=new FunnyDuck(SDL_HWSURFACE | SDL_DOUBLEBUF, surface, " Moteur FunnyDuck par pandamark", 640, 480);
Game->SetFrameDelay(1);
srand(time(NULL));
}
void GameStart()
{
int c;
//Chargement des Sprites
for(c=0;c<10;c++)
{
Skullhead=SDL_LoadBMP("SKULL.bmp");
Skull[c]=new Sprite(Skullhead, rand()%600+20, rand()%440+20);
}
}
void GameEnd()
{
}
void GameActivate()
{
}
void GameDeactivate()
{
}
void GamePaint()
{
int s=0;
for(s=0;s<10;s++)
{
Skull[i]->Draw(surface);
}
FlipScreen(surface);
i++;
if(i==10)i=0;
}
void GameCycle()
{
Skull[i]->SetPos(rand()%600+20, rand()%440+20);
}
bool StopLoop()
{
return false;
}

FunnyDuck *GetEngine()
{
return Game;
}

--------------------------------------------------

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 11:29:39

ta classe FunnyDuck passe le pointeur screen en parametre
cependant, le pointeur qui est récupéré dans le constructeur est, bien entendu, une copie du pointeur.
dans ton constructeur, que tu as du prototyper comme ça :
FunnyDuck(....,SDL_Surface* screen,...)

c´est la copie de screen qui est modifiée quand tu crées ta surface, pas celui du main.
Si tu ne veux pas t´embeter, passe ton pointeur par référence, et tu verras que ça ira nettement mieux :)

1 caractere a rajouter :

FunnyDuck(....,SDL_Surface*& screen,...)

dis moi si ça marche.

jejej
jejej
Niveau 9
23 février 2005 à 12:18:08

Ouais , JYY , mais il m´a fallu modifier un peu toute ta fonction en fait :p)
la , ca marche a peu pres , c marrant parceque ca bug un peu ( bon , c marrant a voir , parceque je sens qu´a corriger ca va etre relou ) , mais ca marche

pour le logiciel , j´utilise irfan view pour avoir la couleur de mes pixels . .. d´ailleurs , le bleu que tu utilisais , c´etait du ( 3,3,255) :p)

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 12:23:54

arf :) de toute façon, je ne controlais que le bleu, lol :) donc 3 en rouge et en vert étaient ignorés, hihi :)
mais bon, apres, si tu fais un controle rigide, je me serais fait avoir ! ! :)
car si j´avais dit " pure bleu", il m´aurait dit " non", et pan ! :)

jejej
jejej
Niveau 9
23 février 2005 à 12:37:55

Bon , bah maintenant , c´est parti pour la partie " lourde " : choisir les tiles sets ( j´en ai trouve plein ) , definir pour chacun une " couleur " d´affichage " , et . .. dessiner la carte :p)

Ah , petit problème la : pas de scénario ? arg ^^
Bon , alors ca va etre l´histoire d´un gars qui arrive en bateau dans un monde inconnu , et plus ou moins bien civilisé , et qui va sauver le monde des griffes de l´infame X et de sa horde de démons alors . .. avec deux-trois princesses , des trésors , un roi traitre et du sang partout . .. ouais , ca devrait aller :)

bof , de toute facon , je commence par le systeme de carte , puis je ferais la classe perso , objet et en dernier lieu les mosntres puis les quetes . ..

jul38
jul38
Niveau 6
23 février 2005 à 12:45:32

salut,
J´ai un gros probleme avec les tiles,impossible de comprendre,mon but est de générer un scrolling.
Donc mon niveau sera constitué de 200-300 titles pour les decors lu à travers un tableau :

unsigned char map[50][20]={0,0,1,1,0,0,...,};

donc mon niveau s´affiche bien a l´aide de boucle for imbriquées.

Mais comment procéder pour un scrolling?
Si mon perso avance il faudrait que le decor bouge.

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 12:55:02

regarde mon tuto " scrolling a la souris" dans mon tuto pour savoir comment ça se gere :)

dnob700
dnob700
Niveau 10
23 février 2005 à 13:26:07

Est ce que qqn connait une méthode pour pouvoir charger avec la SDL des images qu´on aurait mis dans un fichier de ressource ?

parce qu´avec windows, on ne peut récupérer qu´un handle sur l´image alors que la SDL attend un chemin de fichier.
Bien sur on pourrait recopier " à la main" ( c´est a dire pixel par pixel) d´une surface bitmap type windows vers une SDL_Rect, mais c´est pas très propre.

donc si quelqu´un sait, ça serait inteessant, pour pouvoir éviter d´avoir à déployer plein de ficher images avec son application.

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 14:18:12

a mon avis, il n´y a pas cette fonction :(

par contre, tu peux créer en effet manuellement une surface avec SDLcreateRGBSurface, puis t´y colles les pixels un a un.
Si tu fais cette fonction ça peut m´intéresser ! :)

OxFFFF
OxFFFF
Niveau 8
23 février 2005 à 14:25:49

dnob700 > T´as jeté un oeil dans la catégorie " librairies" du site officiel ?
Il y a peut être ce que tu cherches...

jejej
jejej
Niveau 9
23 février 2005 à 15:59:44

I N C R O Y A B L E
le compilo qui plante :snif2:

G t a faire un truc trop chaud , et boum , le programme ne repond pas :snif:

Alors , petit conseil a tous ceux qui utilisent Dev-cpp : ne surchargez pas les noms de fonctions , en effet dev cpp affiche une petite fenetre " d´aide hum " qui nous donne le prototype de la fonction qu´on est en train d´appeller . .. et si deux fonctions portent le meme nom . .. bah . .. il sait pas quel prototype afficher . .. et il plante :snif2:

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 16:22:21

euh bizarre !
des fois les compilateurs plantent ( tres rare) quand tu as fait un truc tres tordu

essaie un exemple simple la dessus, et tu me diras si ça plante toujours !

LGV
LGV
Niveau 28
23 février 2005 à 16:29:15

Jejej : la surcharge etant un truc de base, a mon avis tu t´es manque qqpart... ou alors devc++ est VRAIMENT mauvais :D

cela c´est possible de faire planter son compilo ( vive les " internal compiler error" sous VC par ex.) Cela arrive lorsqu´on atteint une des limitations du parser, comme le nombre de if imbriques, la longueur des identifiants, etc.

jejej
jejej
Niveau 9
23 février 2005 à 16:33:37

Nan Nan LGV , je crois pas

en fait , on va dire que j´avais

void Affiche(int x ) ;
et
void Affiche(int x , int y);

ben , dans mon main , je commence a ecrire
Affiche . .. la il m´ouvre une petite fenetre avec le prototype de la fonction Affiche , mais il commence a hesiter entre les deux . .. plaf

je reesayerais si vous voulez , j´espere que c´est juste de la malchance
parceque , c´est pas la premiere fois que je surcharge , mais je plante rarement dev-cpp . ..

Boah , j´ai perdu que 10 minutes :)
Et , en fait , j´ai recommence le projet donc . ..

jejej
jejej
Niveau 9
23 février 2005 à 16:34:52

peut etre que les fonctions etaient trop longues
void Affiche ( SDL_Surface *image , SDL_Surface *fond , int x , int y , int x2 , int y2 , int w , int h ) . ..

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 16:39:31

non, faut mettre le paquet pour qu´une fonction soit longue, j´en ai déja vu a 24 parametres : ça ne ralait pas :) ( enfin juste le mec qui l´appelait ralait, hihi :) )

LGV
LGV
Niveau 28
23 février 2005 à 16:42:53

aaaah, le " intellisense" version devc++... moui, ca arrive sur VC++ aussi, si le rebuild date d´un certain temps. Mais ca n´est qu´une partie minime du parser de l´IDE, rien de bien alarmant donc :) le compilo, lui, s´y retrouve. c´est l´essentiel.

par contre comme je disais plus haut, on peut faire du code conceptuellement et syntaxiquement correct mais qui ne compile pas, pour cause de limitations internes du compilos.

jejej
jejej
Niveau 9
23 février 2005 à 16:44:03

Bon , tes fonctions Map et Pixel , JYY , je sais pas si c´est toi qui les a faites , mais faut avoir l´esprit tordu :-p

La , je crois que je commence a comprendre le fonctionnement global , mais , ensuite , pour ce qui est du modulo et tout . .. je sais pas pourquoi ca marche :)

La , j´ai ( enfin ) reussi a afficher à peu pres ce que je voulais . ..

bon , on va dire que je n´ai plus de fatal error : segment fault . ..

Parcequ´en fait , j´ai trouve plusieurs tilesets ( 11 :ouch: ) qui contiennent chacun 64 tiles . .. Donc , je dois spécifier une couleur pour chacun d´eux ( et trouver la couleur dans paint en plus ) et reussir a les afficher :snif:

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 16:48:37

" tes fonctions Map et Pixel , JYY , je sais pas si c´est toi qui les a faites"
--> Yes :)

" mais faut avoir l´esprit tordu"
--> Merci :-) j´en suis tres fier :content:

" je sais pas pourquoi ca marche"
--> c´est mathématique.

" Donc , je dois spécifier une couleur pour chacun d´eux "
--> :oui: mais tu peux t´organiser de façon a y automatiser ! enfin :)

jejej
jejej
Niveau 9
23 février 2005 à 16:57:09

Ben . .. a vrai dire , je me sens encore vraiment faiblard avec l´optimisation , la separation du projet , tout ca :)

donc , pour l´instant , je code tout en dur , dans le meme fichier texte

Par contre , j´ai un petit probleme :
avec le switch , je l´ai jamais bien utilisé , mais la je vois pas où est l´erreur :

j´ai modifie un peu ta fonction pixel , elle retourne tout le tableau P
ensuite , je compare P[0] avec 0 , P[1] avec 255 etc dans un if() , si c juste j´affiche tel bitmap

ca , je l´ai essaye sur ton code , ca marchait ( j´ai mis deux heures , y a interet )

Par contre , c´etait pour tester 3 valeurs , ca allait

mais la , vu que je pense avoir au moins 50 valeurs differents , j´ai voulu faire un switch :

int ChoixTiles( Uint8 *P[] , int *Pnumcarreau)
{
switch ( P[0] )
{
case 0:
{
switch ( P[1] )
{
case 255:
{
switch( P[2])
{
case 255:
{
Pnumcarreau = 1;
break;
}
}
}
}

}

mais il me dit :
switch quantity not an integer
pour chaque switch . .. ?

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