IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

[Debutant innocent ] question a propos de la conception d'un Bomberman 2D


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre averti Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Points : 382
    Points
    382
    Par défaut [Debutant innocent ] question a propos de la conception d'un Bomberman 2D
    Bonjour , je suis en cours de conception d'un jeu de Bomberman en 2D , et j'ai choisi la SFML parceque j'ai deja une petite experience avec ( j'ai fait un petit Pacman en 2D avec ) , en plus ayant utilise SDL je trouve qu'elle est tres agreable a utiliser ( un grand Merci pour Laurent ) .

    Mon probleme :
    avec le PAcman je gerais tous dans un tableau double dimension et je redessine le tableau dans une fenêtre en remplaçant chaque caractere par son image . ( j'ai un peu utiliser le model de conception MVC ) .
    mais en travaillant sur un tableau 2D a chaque déplacement on a l'impression que mon personnage disparait et reapparait , normal vous me direz vu que je fait le deplacement par case de 50 pixels et que sa se voit , enfin c'est ce que j'ai conclus , et je veux que le deplacement soit fluide .

    avec le bomberman j'aurais le meme probleme si je concois le jeux de la meme facon surtous que ici aussi je dois gerer les bombes et sans tableau 2D je ne vois pas trop et c'est important pour moi que le deplacement soit fluide .

    Ma solution a corriger :
    j'ai reflechi , et j'ai pense a faire des deplacement pixel par pixel et toujours en communiquant avec le tableau 2D .

    mais avec ce genre de deplacement il se peut que le personnage soit entre la premiere et la deuxieme case dans ce cas je choisirais celle ou il est le plus present avec priorite pour la premiere et le marquer dans le tableau double dimension .

    mais comment gerer la vitesse du deplacement pixel par pixel , surtous que apres avoir enfonce la touche le personnage se deplace s'arrete puis apres il continue a bouger . c'est assez genant . donc je compte ignorer le premier deplacement .

    et pour la gestion des collision , dois je me déplacer pix par pix puis faire la correspondance avec le tableau 2D et deduire ?( c'est ce que je pense ) ou alors gerer les collision directement avec les positions des sprites dans la fenetre ? ( quand je dis collision c'est entre les personnages avec les caisses et l'explosion des bombes ainsi que les bombes elles meme )

    dois je utiliser des Threads pour chaque personnage dans la map ? y'aura 4 personnages en tous . et vu l'intelligence artificielle pour 3 d'entre eux je pense que c'est une bonne idee pour gerer le simultanee seulement je m'inquiete pour les ressourses CPU , ai-je raison de m'inquieter ?.
    ----------------------------------------------------------------------------------------
    Merci d'avance pour votre aide sur laquelle je compte enormement , comme vous avez pu le voir je suis debutant en programmation des jeux en 2D , et je suis vraiement a l'ecoute de tous conseils .
    si j'ai tous faux n'hesitez pas je suis la pour apprendre , je suis pret a refaire la conception car je ne me lance jamais dans un projet en etant dans le flou .

    Merci de m'avoir lu et bonne soirée

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 381
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 381
    Points : 20 452
    Points
    20 452
    Par défaut
    Citation Envoyé par elmcherqui Voir le message
    et pour la gestion des collision , dois je me déplacer pix par pix puis faire la correspondance avec le tableau 2D et deduire ?( c'est ce que je pense ) ou alors gerer les collision directement avec les positions des sprites dans la fenetre ? ( quand je dis collision c'est entre les personnages avec les caisses et l'explosion des bombes ainsi que les bombes elles meme )
    Mais pourquoi se déplacer pixel par pixel ?
    Si tu te déplaces pixel par pixel le déplacement va être trop lent

    dois je utiliser des Threads pour chaque personnage dans la map ?
    Pour un bomberman je n'en vois pas du tout l'intérêt sauf si tu fais un jeu avec réseau local en LAN.
    Tu risques d'alourdir et compliquer le code inutilement et contrairement à ce que l'on pourrait penser la programmation multithread n'accèlére pas forcément les choses..

  3. #3
    Membre averti Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Points : 382
    Points
    382
    Par défaut
    oui en faite quand je dis pixel par pixel c'est en fonction du taux de raffraichissement , et puis bien sur sa sera pas pixel par pixel sa sera multiplie par une petite constante , en fait je viens de le decouvrir .

    mais ce que je voudrais savoir c'est comment avoir l'animation du personnage entrain de marcher ? quelqu'un a une idee ?

    sinon programmation mutlithread n'est pas necessaire vu que l'IA sera legere .

    Merci pour la reponse

  4. #4
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    l'idée est que tu vas utiliser les deux à la fois:

    - un tableau pour stocker les informations du 'plateau de jeu' (donc ici, les endroits où on peut se déplacer, les blocks, les bonus, éventuellement les bombes). Eux auront évidemment des coordonnées entières (les indices du tableau).

    - d'autres srtuctures plus spécifiques pour les éléments qui vont être amenés à bouger (persos, monstres, bombes qu'on peut 'pousser', ...). Eux auront des coordonnées sous forme de flottants. Par exemple en prenant la largeur d'un bloc comme valant 1.0. Donc si ton perso est avancé de moitié entre deux cases sur l'horizontale, il sera à x = 12.5 par exemple.

    Après, quand tu as besoin de situer un objet du tableau par rapport à un autre, tu vas simplement considérer que ton bloc (avec l'indice x,y dans ton tableau) commence en [x,y] et finit en [x+1.0, y+1.0]. Par exemple quand tu vas vouloir calculer les collisions perso / block, tu vas faire cette msie en relation.

    Dans le cas du déplacement, la solution basique consiste à tester si pour un déplacement désiré, la coordonnée de chacun des quatre coins du sprite de ton perso ne va pas se retrouver dans un bloc une fois le déplacement fait.
    exemple:
    - perso en [0.54 , 10.32] de taille [0.8, 0.8].
    - je veux le déplacer de [0.10, 0.00]
    - les coordonnées des quatres coins après déplacement sont donc:
    * coin haut-gauche: [0.64 , 10.32]
    * coin haut-droit: [1.44 , 10.32]
    * coin bas-gauche: [0.64 , 11.12]
    * coin bas-droit: [1.44 , 11.12]

    => donc tu vas regarder dans ton tableau si les 4 cases [0, 10], [1, 10], [0, 11], [1, 11] sont libres ou pas. Si oui, tu fais le déplacement ; sinon tu ne le fais pas.

    Au passage, je te conseille pour la notion de déplacement de faire des calculs non pas en unités par image affichée (ex: 0.02 par image), mais en unité par unité de temps (ex: 0.5 par seconde).

    Pour le multithread, comme le dit Mat.M: oublie, tu n'en auras pas besoin ici et ça risque de beaucoup compliquer ton code.

    Voilà poru les grandes lignes.
    N'oublie pas par ailleurs qu'il doit très probablement y avoir des clones de bomberman disponibles en open source quelque part sur le net ; ça peut éventuellement être une source d'inspiration d'essayer de comprendre comment les autres ont fait.

  5. #5
    Membre averti Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Points : 382
    Points
    382
    Par défaut
    Merci beaucoup pour les idees nouknouk , je vais me pencher dessus , sinon je viens de trouver sur le wiki de la SFML comment se font les animations .
    bonne soiree .

Discussions similaires

  1. Question a propos de threads
    Par cryptorchild dans le forum Langage
    Réponses: 1
    Dernier message: 12/07/2005, 10h03
  2. [VBA-E] Question à propos des checkbox
    Par Timfg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2005, 15h09
  3. Question a propos des modulos
    Par barthelv dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/03/2005, 15h56
  4. [debutant STL] question sur les vectors
    Par killerjeff dans le forum SL & STL
    Réponses: 13
    Dernier message: 19/08/2004, 17h32
  5. [debutant] Questions a propos du XML
    Par brune dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 04/06/2004, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo