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

Tav
Tav
Niveau 5
27 février 2005 à 22:37:06

C´est a usjuet des lsites chaînées . .. J´a ibien corpis coment elles fonctionnaient, masi pas comment les utiliser . ..
Devrais-je faire une classe? Avec une méthode lire la liste chaînée, rajouter, supprimer . .. ?
Merci d´avance...
http://prog-world.forumactif.com/index.forum

JeanYvesYves
JeanYvesYves
Niveau 10
27 février 2005 à 23:44:42

désolé, retour de week end, pas eu le temps de tout lire : réitérez vos questions si je n´y réponds pas.

Tav > Il en existe déja en standard et intégré, jette un oeil sur mon tuto, chapitre D.

sonic66 > jette un oeil sur les structures SDL pour comprendre :
http://sdldoc.csn.ul.ie/sdlevent.php
A l´occas, je ferai un tuto sur les events.

jul38 > Quel genre de collisions veux tu faire ? Explique davantage.

hyper-knuckle
hyper-knuckle
Niveau 4
28 février 2005 à 01:38:09

Pub jeuxvideo!!!

www.mekacom.forumactif.com

Venez parlez de jeuxvideo et de créations de jeuxvidéo!!!

Tav
Tav
Niveau 5
28 février 2005 à 12:12:42

HELP PLEASE!
Je déclare
[code]

vector<fiche>carnet(taille);

[/code]
Mais je veux créer une fonction pour afficher. Donc je passe par référence ( dites moi si il ya plus simple) l´objet ´carnet´, qui est un tableau dynamique de type fiche ( fiche est une structure). Mais c´est de quel type? La définition et la déclaration de ma fonction devront être écrites comment?

J´ai bien tenté

[code]

void carnet_afficher(fiche &, int i);

[/code]

Pour ensuite n´avoir qu´a marquer en défintion qqchose du style
[code]
void carnet_afficher(fiche &, int i)
{
cout<<"Nom: " <<carnet[i].nom<<endl;
cout<<"Prenom: " <<carnet[i].prenom<<endl;
cout<<"Addresse email: " <<carnet[i].email<<endl;
cout<<"Anniversaire: " <<carnet[i].anniversaire<<endl;
}

[/code]

Le i, c´est dans une boucle for en fait:

[code]

for(int i=0;i<=taille;i++)
{
carnet_afficher(carnet,i);
}

[/code]

Je sais donc pas comment déclarer ma fonction ´carnet_afficher´... Merci d´avance.

PS: j´ai oublie de preciser que ´taille´ etait un entier définit.

JeanYvesYves
JeanYvesYves
Niveau 10
28 février 2005 à 13:22:51

void carnet_afficher(fiche &, int i)

--> faux. Ici, ce que tu passes, c´est une seule fiche, pas un carnet
donc forcément si tu fais :

carnet[i] --> ça va planter.

Essaie plutot de passer tout le carnet correctement ainsi :

void carnet_afficher(vector<fiche>& carnet)

jejej
jejej
Niveau 9
28 février 2005 à 15:53:49

JYY : sur le topic " projet rpg maker vs projet c++ simpliste " tu disais qu´avec la systeme que tu as mis en place sur ton tuto scrolling a la souris , on pouvait " tres facilement et tres rapidement detecter les colisions "

mais . . . j´ai chercher , je ne vois pas comment . . .

quoiqu´il en soit , j´ai quand meme reussi a faire ca :
http://www.memory-leak.fr.st
le deuxieme lien ( le premier c pong )

/ / vous remarquerez les effets d´eau quasi photos realistes au sud de la carte
/ / ainsi que la possibilite de marcher au dessus de l´eau hum . ..

si quelqu´un veut me dire ce qu´il en pense . . . a noter que j´ai abandonne le scrollign a la souris , parceque j´aurais du mettre un A* pour faire avancer mon perso
ca viendra

je l´avais poste ce week end , mais il est parti quelques pages plus loin :)
Donc , voila , j´aurias voulu savoir comment tu gerais les collisions avec la technique de " map dans un bmp " , parceque moi je vois pas trop comment faire

en fait , j´ai un peu modifie ta technique , et chaque couleur correspond a un tile precis , donc je ne peut pas faire " si pixel plein , on bloque le joueur " , parceque tous les pixels sont comptes

en fait , c une technique chacale , made in jejej , je recupere la couleur RGB dans un tableau P , et P[0] correspond a l´absicce du tile , P[1] à l´ordonnee , et P[2] au numero du tileset dans lequel le tile a afficher ce trouve

au besoin , je pourrais paster mon code

Bon , cette technique à l´avantage de réaliser de grandes maps , variees , en un minimum de temps a dessiner , et un minimum de ligne de code , l´inconvenient est que la map parait toute noire , et est inmodifiable . ..

Tav
Tav
Niveau 5
28 février 2005 à 16:37:01

JY²-->merci de ton aide, alors je post mon code, car j´ai aussi un autre problème...
Je peux aller jusqu´a la demande de nom, pis la, windows m´affiche un mess d´erreur! Merci de m´aider :)

void ajouter(FILE *fichier, char *namefile,FILE *fichier2, char *namefile2, int &)
{
fichier2=fopen(namefile2,"rb");
if(!fichier2)
{
taille=0;
}
else
{
fread(&,sizeof(int),1,fichier2);
fclose(fichier2);
}
taille++;
fichier2=fopen(namefile,"wb");
fwrite(&,sizeof(int),1,fichier2);
fclose(fichier2);
vector<fiche>carnet(taille);
fichier=fopen(namefile,"rb");
if(fichier)
{
fread(&,sizeof(carnet),1,fichier);
fclose(fichier);
}
cout<<"N´entrez pas d´espaces: " <<endl;
cout<<"Entrez le nom: " <<flush;
cin>>carnet[taille].nom;
cout<<endl<<"Entrez le prenom: " <<flush;
cin>>carnet[taille].prenom;
cout<<endl<<"Entrez l´addresse email: " <<flush;
cin>>carnet[taille].email;
cout<<endl<<"Entrez la date de naissance: " <<flush;
cin>>carnet[taille].anniversaire;
fclose(fichier);
fichier=fopen(namefile,"wb");
fwrite(&,sizeof(carnet),1,fichier);
fclose(fichier);
system("PAUSE>nul");
}

Tav
Tav
Niveau 5
28 février 2005 à 16:41:33

Mon problème pourrait-il venir du fait que mon tableau<-->vector carnet ne soit pas initialise a zero? Je comprends pâs trop trop bien ce qui pourrait faire buguer le programme . .. :(

PS: après je tenterai de faire le programme avec des listes chaînées... Mais cette fois-ci j´aimerai utiliser istream et ostream ( si c´est bin ca :) l´equivalent de fclose, fopen, fread, fwrite . .. du C. Donc si vous avez de la doc, sinan j´irai en chercher moi-meme!

Merci!

JeanYvesYves
JeanYvesYves
Niveau 10
28 février 2005 à 16:53:09

jejej > je te la ferai a l´occas cette fonction de collision.
Le principe est de définir ou est le point supérieur gauche de ton sprite sur la mini carte, ainsi que le point inferieur droit
ce qui forme sur ta mini carte un minirectangle de max 2*2 pixels
tu testes donc si les pixels de ce minirectangle touchent des pixels de mur, et c´est fini :)

Tav > pourquoi passes tu des FILE* en parametre ?
Les utilises tu en retour de ta fonction ?
si oui c´est normal que ça plante : c´est les variables fichier et fichier2 locales a ta fonction qui seront modifiées, en aucun cas celles de la fonction appelante.
Essaie de débugger pour bien voir d´ou ça peut venir ( met des break point et execute) tu verras, c´est bien pratique :)

jejej
jejej
Niveau 9
28 février 2005 à 17:01:09

Merci de ta réponse , mais . .. je crois que j´ai pas tout bien saisi :)

En fait , j´ai encore des problemes avec les coordonees :

parceque , pour l´instant , j´affiche le monde au coordonnees Xoffset et Yoffset du level en BMP , alors que j´affiche mon perso au coordonnee ( 240 , 280 ) de mon ecran , de sorte qu´il est toujours au centre de l´ecran , mais il n´a pas de rapport avec le level en fait

le monde est dessine en fonction des coordonnes sur la mini carte

alors que le perso est dessine en fonction de ces coordonnees ( constantes ) sur l´affichage ( screen dans tes tutos )

donc , faudra que je fasse differemment ?

Tav
Tav
Niveau 5
28 février 2005 à 17:40:23

JY². Merci, mais sa changerai rien, vu que c´est le fichier qui est modifie, pas son nom...
Je le sais car c´est la seconde fois que je fais ce programme, l´autre fois j´ecrivasi directement sur le fichier, j´utilisais pas un tableau avec vector . ..

jul38
jul38
Niveau 6
28 février 2005 à 17:49:29

re salut,
alors pour mon systeme de collision, je voudrais procéder comme ceci :
map[4][100]
={O,O,O,O,O,O......,
O,O,O,O,O,O......,
O,O,O,O,1,O......,
1,1,1,1,1,1......};
voila ça c´est mon decor,le 1 représente le sol,
si mon perso rencontre le " 1" le decor ne bouge plus,si il rencontre le " 0",le decor bouge.
Le systeme de collisons ressemblerais a cela.
Voila le bot de code :
http://rafb.net/paste/results/2wGzg783.html

sonic66
sonic66
Niveau 10
28 février 2005 à 17:54:50

Jyy , ton lien ne marche pas :snif2: tu pourrait me le remettre sil te plai?

pouky10
pouky10
Niveau 6
28 février 2005 à 18:05:03

Salut je voulait de l´information sur l´allocation dynamique, je n´ai pas eu de réponse car ce topic va trop vite, donc je le remets ici:

Moi je fais un casse brique et j´aimerais faire une liste chainé(je crois que c´est cela), car quand une brique disparait, je voudrais quel pour vrai(pour l´instant, je la mais à x=0 et y=0 et w=0 et h=0).
Dans un livre, j´ai vu qu´on un peu peux ce faire avec la création dinamyque. Quand on fait par exemple:

SDL_Rect brique * pbrique;
pbrique = new SDL_Rect;

Es-ce que je peux refaire un 2e objet à un autre endroit dans le programme en refesant new SDL_Rect? Et si oui, comment en faire plusieur d´un coup, es-ce que je peux accèder au 2 menbre en fesant ( pbrique+1)->x ( car peut-etre d´autre variable seront créé à ( pbrique+1)? et la dernièr question(si tout cela marche) es-ce que si je supprime le 2e élément, es-ce que le 3e devient le 2e

JeanYvesYves
JeanYvesYves
Niveau 10
28 février 2005 à 18:10:32

sonic66 > quel lien ?

pouky10 >

SDL_Rect brique * pbrique[10]; / / 10 d´un coup

for(i=0;i<10;i++)
pbrique[i]=new SDL_Rect;

( pbrique+1)->x < -- NON.

prbique[n]->x < -- OUI

" es-ce que si je supprime le 2e élément, es-ce que le 3e devient le 2e"
--> Non.

supra_boulet
supra_boulet
Niveau 5
28 février 2005 à 18:11:38

sonic66 > jette un oeil sur les structures SDL pour comprendre :
http://sdldoc.csn.ul.ie/sdlevent.php
A l´occas, je ferai un tuto sur les events.

celui la :snif2:

jul38
jul38
Niveau 6
28 février 2005 à 18:18:19

je ne sais pas si tu as compris le systeme de collisions que je voudrais faire,mais je trouce ça assez dire.
J´essai de tester de ce genre ;
if ( tableau [i+variable_scrolling][j+variable_scrolling]>0)
variable_scrolling--;

pouky10
pouky10
Niveau 6
28 février 2005 à 18:18:45

Mais est-ce que cette méthode permet de rajouter des élément quand on veut et d´en supprimer?Ou sinon, il y-en-a-t-il une? Parce que je voudrais supprimer mes brique en mémoire quand elle sont détruite et de tout les recréer au prochain level.

JeanYvesYves
JeanYvesYves
Niveau 10
28 février 2005 à 18:19:14

pas super pratique :) mais bon, faut essayer pour voir si ça marche !
a l´occas j´implémente celui dont je te parle :)

JeanYvesYves
JeanYvesYves
Niveau 10
28 février 2005 à 18:19:59

si tu veux des structures comme ça, utilise list : regarde dans mon tuto le chapitre D

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