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

Conception d'un jeu, algorithme

sangohan55
sangohan55
Niveau 10
05 novembre 2007 à 09:12:23

Bonjour à tous,

Je suis un petit jeune de 13 ans qui cherche a developper seul chez lui un jeu amateur, je code depuis 1 semaine (un peu moins) un jeu de combat en 2D, le perso avance vers la droite et çe bat contre les enemies qu´il rencontre. J´ai déjà fait un peu de chose, j´ai mit en place la map, le perso avance ou il veux, j´ai mit en place le scrolling et un enemie (statique,je n´ai pas encore developper l´IA)

Premier problème :

Mon perso peux çe deplacer, le scrolling est gérée :) mais j´ai voulu qu´il puisse lancer une boule de feu. Et la c´est la galère, je bloque depuis peut etre 4 jours sur un algorithme correcte, car jusqu´a maintenant, j´utilise une boucle, donc mon jeu est "bloqué" temps que la boucle n´est pas finis.J´ai essayé des choses, par exemple l´utilisation d´un vector, mais comme je ne maitrise pas du tout ce concept, je n´ai pas abouti.

J´espère que vous m´aiderez déjà contre ce premier problème.
Pourquoi je n´ai pas posté dans le forum programmation ?
il n´ya pas un brun de programmation la dedans c´est un problème seulement algorithmique.

Bien que ce soit inutile (peut-etre pas ?) je programme mon jeu en C++.

Pour ceux qui veulent voir j´ai 2 screen

http://hiboox.com/lang-fr-fr/image.php?img=vxpv6u7o.jpg
http://hiboox.com/lang-fr-fr/image.php?img=98021q79.jpg

Je vous remercie d´avance :bye:

godrik
godrik
Niveau 30
05 novembre 2007 à 10:11:38

Cette discution aurait sa place sur programmation. Mais je penses qu´elle a encore plus ca place ici.

Generalement, les jeux sont découpés en frame. et le code ressemble (de tres loin) à:

calculer_la_prochaine_frame();
afficher_la_frame_courante();

La premiere fonction s´occupe de tous les aspects calculatoire de ton jeu. Ou est mon personnage ou sont les adversaire. mon personnage veut se deplacer a droite, il ne peut pas, il y a un mur.

La deuxieme fonction se contente d´afficher les objets en 2D.

Rajouter une boule de feu dans ton jeu, revient a ajouter un objet qui apparait a la position de ton personnage et qui se deplace vers la droite (par exemple) d´un certain nombre d´unité de distance a chaque frame.
Il faudra naturellement rajouter les test de collisions de ta boule de feu contre tous les objets avec lesquel elle peut interagir.

sangohan55
sangohan55
Niveau 10
05 novembre 2007 à 10:41:03

Bonjour godrik et merci de ta réponse,

J´ai essayé de faire avancer ma boule de feu a chaque "mise a jour" de la scène principale, c´est ça que tu entendais par "frame" ?

Donc j´ai essayé ça, le problème c´est que les calcules sont effectuer dans le constructeur de ma class, donc les calcules ne sont effectu&é qu´une fois lors de la déclaration de mon objet, serait-il possible d´appeler le constructeur a chaque class ? Ou suis-je obliger de passer par une fonction façon C pure ?

gizmosup
gizmosup
Niveau 3
05 novembre 2007 à 11:15:07

Bonjour,

Le principe que tu utilises n´est, je pense, pas le bon.
Selon moi, tu doit créer une classe représentant ta boule de feu (classe que tu as créé contenant le constructeur).

Tu dois, grâce au constructeur initialiser ta classe (par exemple, la couleur est rouge, la place de départ est à droite de ton perso, ...), par contre, sa vitesse et son déplacement doivent être gérés par des attributs et méthodes annexes à ton constructeur.

Je m´explique un peu mieux, tu va avoir des attributs de ta classe permettant de déterminer sa vitesse de déplacement, sa position actuelle et sa direction, ces attributs vont être initialisés lors de ton constructeur.
Ensuite, tu vas avoir une méthode (update par exemple) qui va permettre à chaque appel de modifier cela (la méthode update va par exemple ajouter la valeur vitesse à la position horizontale pour faire croire que ta boule avance).
Ensuite, dans ton code courant, au moment de la création de ta boule de feu, tu créé ton objet que tu vas garder tout au long de sa vie (normalement, comme ton perso selon moi), et ensuite, à chaque calculer_la_prochaine_frame(), tu appelles ta méthode update pour mettre à jour la position de ton objet.

Idéalement ton objet boule de feu posséderait toutes les méthodes nécessaires à son cycle de vie (notion de l´objet), c´est à dire une méthode de création, de modification (update), de gestion de vie (s´il a rencontré un objet, que doit-il faire ?) , de visualisation (quelle est l´image ou la représentation de ta boule), ainsi que ces attributs propre (sa vitesse, sa position, ...).
En espérant t´avoir aidé (et pas perdu) avec mes explications.

final-hearts
final-hearts
Niveau 10
05 novembre 2007 à 13:11:03

je te conseille de faire bouger la boule de feu d´un certain nombre de pixel par dixieme(ou centieme) de secondes, et une fois celle-ci en collision avec l´ennemi, lui enleve de la vie c´est ça la meilleur methode...

tu cherches peut-être comment géré les collisions avec tous les ennemis, dans ce cas tu as les vecteurs ou un tableau de pointeur pointant sur chaque element ennemi

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