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

Projet squelette : Pong

Fvirtman
Fvirtman
Niveau 10
02 juillet 2007 à 15:06:28

Bonjour,
Ce topic s´adresse a tout programmeur C / C++ assez débutant, qui a déja touché SDL ou une autre librairie graphique.
Il s´agit d´un exercice qui, si vous l´achevez, vous donnera un jeu "pong"

http://rafb.net/p/wJwnGU63.html

Il s´agit d´un jeu PONG a faire :
le découpage en fonctions est déja fait. Etudiez le programme (commencez par regarder le main, les fonctions qu´il appelle, regardez les structures)
L´exercice consiste a comprendre le découpage en petites fonctions, et de remplir chacune d´elles :
Dans chaque fonction, il y a un commentaire avec ce qui est attendu, a vous de le coder.

Un gros probleme peut etre découpé en plusieurs petits problemes.
Ici donc, vous avez plusieurs petits problemes, si vous les résolvez tous, vous aurez un petit jeu...

Kaoron
Kaoron
Niveau 9
02 juillet 2007 à 15:21:44

Tu vas en faire un comme ça tous les jours? rafb c´est pas génial pour la pérennité des bonnes idées XD! Mets le sur ta page plutôt.

Jolie initiative. :) Espérons que beaucoup en profitent.

tauruxbis
tauruxbis
Niveau 10
02 juillet 2007 à 15:50:30

Merci de ton dévouement :)

Fvirtman
Fvirtman
Niveau 10
02 juillet 2007 à 16:01:38

tous les jours non :)
Disons que je verrai, en fonction de celui ci, si on continue on pas, faut voir, c´est juste un test pour le moment :)

[R]Viper
[R]Viper
Niveau 10
03 juillet 2007 à 18:00:07

Fvirtman, le lien ne fonctionne pas chez moi. :(

Kaoron
Kaoron
Niveau 9
03 juillet 2007 à 18:03:32

C´est ce que je disais plus haut, les paste rafb ne tiennent que 24h... Je n´ai pas conservé la page et ne l´ai pas en cache, donc il va falloir attendre Fvirtman :/

Fvirtman
Fvirtman
Niveau 10
03 juillet 2007 à 18:16:41

Je l´ai herbergé dans une page temporaire de mon site :-)

http://perso.numericable.fr/~fvirtman/temp/exo_pong.cpp

LGV
LGV
Niveau 28
03 juillet 2007 à 20:42:18

en voila une idee qu´elle est bonne !!

si je peux me permettre une suggestion, il y a qqch qui me parait primordial pour donner une bonne habitude aux debutant, et qui n´apparait pas ici : une boucle d´Advance basee sur un temps.
oui je sais il est facile de critiquer, tout ca, tout ca, mais une modif minime, un introduisant juste un timer, pourrait assurer une bonne structure des futurs jeux que les gens developperont.

Fvirtman
Fvirtman
Niveau 10
03 juillet 2007 à 22:14:43

LGV > tu as tout a fait raison :) je viens de mettre a jour le programme :)

Ce que dit LGV signifie que le jeu ira a la meme vitesse sur n´importe quelle machine (une lente comme une rapide), car l´erreur classique est de définir une vitesse en pixels parcourus par frame et non en pixels parcourus par secondes : du coup, un PC qui affiche + de frame qu´un autre modifiera la vitesse du jeu.
Alors qu´en pixels parcourus par secondes, ce probleme disparait car la seconde ne varie pas d´un PC a l´autre :)

KeepSmile
KeepSmile
Niveau 4
04 juillet 2007 à 19:42:00

Bonjour,

Déjà superbe initiative et excellente idée :) !

J´ai regardé vite fait le squelette, et je me posé quelques questions:

- Evolue(b,timer-SDL_GetTicks());, ne serait ce pas l´inverse ?
- // * Flip l´image, et effacer l´écran aussi non ?
- Pour les collisions, il faudrait aussi vérifier que les raquettes ne touche pas le haut ?
- x+= vx*dt*1000.0, il me semble qu´il n´y a pas besoin du *1000.0 étant donnée que tu fais la différence en passant le temps en paramètre mais à vérifier.

Voilà ce que j´ai vu et qui est superficiel (surement volontaire pour qu´on cherche les erreurs :p ... espèce de homervirtman ! :) )

En tout cas le squelette est vraiment bien commenté (comme d´hab ;) ), c´est très intuitif d´après ce que j´ai lu. J´essaierai si j´ai le temps de le faire dans la semaine ou la semaine prochaine, je posterai le code ici ;) .

Si ca marche, y aura il d´autres projets comme celui ci ? :D (un mmorpg 3D :D )

Fvirtman
Fvirtman
Niveau 10
04 juillet 2007 à 20:16:56

KeepSmile > tres tres juste !

- Evolue(b,timer-SDL_GetTicks());, ne serait ce pas l´inverse ?
--> Si, tu as raison :) je viens de corriger

- // * Flip l´image, et effacer l´écran aussi non ?
--> tout a fait, je propose maintenant, au choix, d´effacer l´écran ou de blitter une image de fond avant le flip :)

- Pour les collisions, il faudrait aussi vérifier que les raquettes ne touche pas le haut ?
--> J´ai rajouté le commentaire pour dire d´y penser dans la fonction :)

- x+= vx*dt*1000.0,
--> j´ai changé en :
x+= vx*dt/1000.0
dt est en millisecondes, en divisant par 1000, j´otiens un flottant pour passer en secondes, que je multiplie par vx. Il risque d´y avoir un warning quand on l´ajoute a x, mais c´est un cast implicite.

Si j´étais un prof, je dirais "hem.... c´est pour voir si vous suiviez :)"
Mais bon, je reconnais, je n´avais pas pensé a tout cela, meme si je dois dire que ces erreurs peuvent etre pas mal pour celui qui teste (sauf la premiere, qui aurait été plus dure a trouver : un dt completement faux, casté en unsigned -> 4 milliards...)
Les autres erreurs sautent davantage au yeux pour celui qui le programme :)

"un mmorpg 3D :D )"
--> Bien sur loool :-)
Comme on disait sur MSN tout a l´heure, pourquoi pas un tetris ou un shoot´em up, mais bon, on en est pas encore la... ça dépendra de l´engouement pour le concept...

Fvirtman
Fvirtman
Niveau 10
04 juillet 2007 à 20:17:52
  • mis a jour en ligne du coup, j´avais oublié de préciser :)

Meme lien qu´au dessus.

sangohan42
sangohan42
Niveau 9
04 juillet 2007 à 23:28:40

Super idée je viens de commencer j´implémente le texte avec SDL_ttf etc jai même rajouter une petite fonction apply_surface au cas ou ^^.

Super trucs et encore merci des quelques aides sur msn.

A bientot

garzul
garzul
Niveau 8
11 juillet 2007 à 19:20:00

Hop, petit pong développer avec mon moteur en quelques heures ->
http://garzul.tonsite.biz/ES/ES_Pong.zip

Bon, il se base pas sur le squelette de Fvirtman car j´ai ajouter plusieurs fonctionnalités mais j´ai eu l´idée de développer cette exemple grâce à ce sujet. ;)

PS : Les sources sont disponibles avec les exemples du moteur.

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