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

jejej
jejej
Niveau 9
17 février 2005 à 09:27:03

sonic :
la structure fraction contient le nominateur et le denominateur

donc en créant dix " instances" de cette structure , on peux dire que tu cree dix fractions

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 09:27:19

sonic66 >

Bon, alors si tu veux passer une structure dans une fonction, tu peux faire :
void fonction(struct moyenne& m)
si tu veux :)
apres, tu manipules les champs qu´il y a dessous avec
moyenne.nomb1
etc...
une structure, ce n´est jamais qu´un paquet qui contient plusieurs variables !

si tu crees une structure avec 2 nombres et que tu l´appelles fraction, alors, avec la ligne :
struct fraction f[10];
tu crées 10 structures " fraction" si tu préféres :)
la on est ok ? apres, une fraction c´est quoi ? c´est 2 nombres, 1 en haut, et un en bas, donc la structure fraction est idéale pour ça ! :)
Dis moi si tu accroches encore :)

Rikkuman4 > ce qui te gene, c´est les fonctions a parametre ? le §1.9 ?
C´est peut etre parce que ça parle de puissance.
Bref, imagine maintenant une fonction " ajoute" définie ainsi :

int ajoute(int a,int b)
{
return a+b;
}

voila, encore plus simple !
le role de cette fonction, c´est que tu lui donnes 2 int, et elle t´en renvoie un autre : en effet, on voit qu´en entrée ( dans les parentheses) on lui donne un int qu´on appelle a, et un autre qu´on appelle b. et on voit, en sortie, donc au début, que c´est un " int"
Imagine un pote a toi qui sait calculer, il s´appelle " ajoute" : il te dit :
" donne moi 2 nombre, moi je t´en donne la somme"
donc toi tu lui en donnes 2, lui il t´en rend 1.
Apres, peu importe comment il a fait, l´essentiel est que tu aies la réponse...

en gros si tu définis, dans le main :
int reponse ;

reponse = ajoute(5,8);
alors ça va appeler la fonction ajoute, avec, dans l´ordre, 5 et 8
donc comme on avait :
int ajoute(int a,int b);
l´ordi, dans l´ordre, va donc faire :

int ajoute(int a = 5, int b = 8)

ensuite, il va faire le code de la fonction, a savoir
return a+b; ce qui fait
return 5+8;
or 5+8 = 13, et donc return 13
donc ajoute va te donner 13

or comme tu as mis
reponse = ajoute(5,8);
et que ajoute(5,8) = 13
alors

reponse = 13

mais l´interet est que tu pourras faire :
ajoute(2,4);
ça va appeler la meme fonction, mais avec d´autres parametres, et cette fois, ça te donnera 6.

La fonction puissance du §1.9 est la meme chose : tu lui donnes 2 nombres, et ça te calcule la puissance de ces 2 nombres : peut importe comment ça se démerde, l´essentiel est que ça te donne la réponse :)

Dis moi si tu seches encore, et sur quoi ? :)

Rikkuman4
Rikkuman4
Niveau 10
17 février 2005 à 09:46:13

ok merci pour cet explication :)
je vais voir, mais pourrais tu me dire, à quoi sa pourrais servire dans un programme :question:

Rikkuman4
Rikkuman4
Niveau 10
17 février 2005 à 09:53:27

dis moi, à return r; le r quand ont fait main()
r puiss(a,b) c´est le r pour dire return ?

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 09:58:38

non non
dans puiss, si tu regardes juste puiss, il se cree une variable r. Bref, il fait sa sauce tout seul, tu le laisses faire. Apres, lui, provisoirement, il stocke sa réponse dans r.
mais apres, ce qu´il te retourne, c´est la valeur de r.
Donc un nombre
et dans le main, on y récupere dans le r du main :)

Dans un premier temps, si tu ne sais pas a quoi ça sert, dis toi juste que ça existe. Tu verras a quoi ça sert quand tu seras confronté a l´evenement.
Tu peux continuer la tuto si tu veux, tu as juste a te dire que ça existe, et le jour ou tu en as besoin, tu reviens dessus avec les idées plus claires :)

Rikkuman4
Rikkuman4
Niveau 10
17 février 2005 à 10:10:50

merci beaucoup ! je ne suis pas prés de lacher ton site :-p

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 10:21:13

jejej > une astuce pour toi :

Comme tu vois, pour le moment, la vitesse de tes déplacements se fait en Pixels/Frame
Si tu portes ton jeu sur un autre PC, qui sera + ou - rapide, tu n´auras pas autant de frame par secondes, donc ça ira + ou - vite...
L´idéal donc, c´est de faire des déplacements en pixels/Secondes.
C´est + propre :)

Pour faire un truc comme ça, c´est simple : utilise :
SDL_GetTicks()
http://sdldoc.csn.ul.ie/sdlgetticks.php
qui te donne le nombre de millisecondes écoulées depuis le dernier boot.

Et greffe ça a ta boucle principale :

uint32 lastchrono=SDL_GetTicks();
while(1)
{
uint32 dt=SDL_GetTicks()-lastchrono;
/ /... le reste
}

A partir de la, dt contient le temps, en millisecondes, passée depuis la derniere frame.

Ensuite, pour faire avancer ton gars de 15 pixels par secondes, il te suffit de faire :

x = 15*dt / 1000;

tout simplement !

bref, c´est une astuce qui peut s´avérer puissante...

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 10:23:40

Petit oubli : faut remettre a jour lastchrono.

uint32 lastchrono=SDL_GetTicks();
while(1)
{
uint32 dt=SDL_GetTicks()-lastchrono;
lastchrono+=dt;
/ / ... le reste
}

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 10:54:20

jejej > Tiens, j´ai un cadeau pour toi, tu me demandais comment récupérer tes 0 et tes 1, dans ton fichier, pour faire ton casse brique :
Je t´ai programmé une fonction :

int LireDatas(char* fichier,char* buf)
{
int curs=0;
char tmp;
ifstream F(fichier);
while(!F.eof())
{
F.read(&,1);
if ( tmp>´0´ && tmp<´9´)
buf[curs++]=tmp;
}
F.close();
return curs;
}

usage :

char table[500];
int nombrechiffres = LireDatas("test.txt",table)

( elle ignore les espaces et les sauts de ligne, donc tu peux y structurer comme tu veux dans ton fichier)

Enjoy !

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 10:55:29

correction :

int LireDatas(char* fichier,char* buf)
{
int curs=0;
char tmp;
ifstream F(fichier);
while(!F.eof())
{
F.read(&,1);
if ( tmp>=´0´ && tmp<=´9´)
buf[curs++]=tmp;
}
F.close();
return curs;
}

jejej
jejej
Niveau 9
17 février 2005 à 11:17:07

Merci beaucoup JYY :)

Pour le coup du temps , en fait j´avais deja remis ce que tu m´avais dit il y a quelques jours ( pour mon sprite ) je crois que ca marche a peu pres , mais je ne suis pas sur ( ben oui , j´ai qu´un ordi :) )

Donc ca serait cool que des personnes avec un ordi puissant ( 3 ghz ) et . .. bon ( 500 mhtz ) essaye mon jeu , si vous voulez bien , pour voir si il n´est ni trop lent ni trop rapide . ..
je l´ai mis ici :
http://www.memory-leak.fr.st

pour l´instant , j´ai encore quelques bugs de collision , et il n´y a pas de score . .. mais c´est deja jouable . ..

Par contre , JYY si tu y joues , tu remarqueras que la balle est " double" , c´est bizarre à explqiuer , mais c´est tres désagréable à regarder . .. par contre je ne vois pas d´où ca peut venir . ..

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 11:23:40

ton lien est foireux sur ton site, il pointe sur c:\mesdocuments, lol ! :)

jejej
jejej
Niveau 9
17 février 2005 à 11:26:18

Bon , ca y est , c´est corrigé :)

mm je crois :) ca marche ?

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 11:31:44

Tiens, une fonction qui te servira pour tes collisions futures :
tu lui donnes 2 SDL_Rect et ça te renvoie 1 si les rectangles se chevauchent, et 0 sinon :)

int BoxCollide(SDL_Rect* a,SDL_Rect* b)
{
if ( !(((b->x<a->x) && ( a->x<b->x+b->w)) || ( (b->x<a->x+a->w) && ( a->x+a->w<b->x+b->w))))
return 0;
if ( !(((b->y<a->y) && ( a->y<b->y+b->h)) || ( (b->y<a->y+a->h) && ( a->y+a->h<b->y+b->h))))
return 0;
return 1;
}

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 11:32:32

marche pas ton lien :)

jejej
jejej
Niveau 9
17 février 2005 à 11:35:34

aaarg
j´ai oublie comment faire :honte:

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 11:40:31

< a href="pong.rar">cliquez ici</a>

JeanYvesYves
JeanYvesYves
Niveau 10
17 février 2005 à 11:49:20

ok, je viens de regarder :)
pour l´effet de la balle, c´est un effet de persistance, je ne sais pas si on peut enelever ça.
Cependant, j´ajouterais que la, je suis a la boite, que j´ai essayé ton jeu rapidos pendant une micropause, et que, a la boite, étant équipé d´une machine de + de 3Ghz, ta balle va trop vite, et les raquettes aussi ! :) injouable !
Le coup des secondes serait donc idéal !

jejej
jejej
Niveau 9
17 février 2005 à 11:51:40

ca a marché ? !
omg chez moi ca marche plus oO

bon , bah j´ai du faire une erreur dans la gestion de SDL_GetTicks , je l´avais mise pourtant mais . .. je vais comparer avec ce que tu m´as mis :)

parceque , chez moi je peux controler les deux raquettes en meme temps , et je m´endort en jouant . ..

sonic66
sonic66
Niveau 10
17 février 2005 à 12:04:26

Jyy en fait il faut creer un struct fraction puis apres on la " clone" en dix fexemplaire qui sappelerons struct fraction[0] struct fraction[1} ect...

et pour ton tutos sur les fonctions avec les puissances , moi aussi javais rien compris alors g essayer de faire pareil avec une moyenne et g compris^^
mais pour etre sur return c ce quon ve que la foncion " affiche" qd on " l´appelle" :question:

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