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 :

Course de voiture, comment?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre habitué Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Points : 161
    Points
    161
    Par défaut Course de voiture, comment?
    Bonjour, j'aimerais programmer un petit jeu de voiture en 2d, style Lotus sur megadrive http://images.google.com/images?svnu...tnG=Rechercher, le problème est que je ne vois pas comment gérer la route, c'est à dire comment dois-je faire pour qu'on ait l'impression de voir de face, j'ai deja essayer de faire un bout de route en 3D, de faire un rendu, puis de l'afficher en boucle comme un sprite, mais bon c'est pas terrible.

    Quelqu'un saurait-il comment faire? merci

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Bonjour,
    Pour les éléments du décor c'est pas sorcier il suffit de gérer des "layers" ou couches/calques.
    Tu peux déclarer std::vector<objet> layer1,layer2 etc...et faire des listes d'objets à afficher..
    Pour les afficher il suffit de déterminer la distance du joueur avec ces objets du décor et d'appliquer un effet de zoom agrandissement ou rétrecissement selon la distance.
    En deça ou au delà d'une certaine distance bref si elle est comprise entre certaines limites l'objet ne sera pas ou sera affiché.

    Si le joueur veut tourner il suffit de décaler en X les objets contenus par les couches selon une origine ( par exemple le centre de l'écran )
    Pour la route au sol il suffit de dessiner le lettrage et même méthode que pour les objets du décor c'est le plus simple.
    Sinon tu peux tracer des lignes avec des calculs trigo mais cela peut prendre des temps de calcul.

    J'attends de voir le résultat

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Pour info on faisait ce genre de pseudo-3d sur super nes avec un truc appelé "mode 7". Je sais pas trop comment ça marche mais google t'en dira sûrement plus. C'est en fait un système de 3d simple, ou seul le sol est vraiment géré en 3d, le reste du décor étant constitué de sprites 2d, ce qui fait qu'on voit tous les objets de face, sans pouvoir tourner autour. L'habilité des programmeurs et des graphistes doit faire tout le reste

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    (Ce n'est pas du mode 7, c'est juste un bricolage qui donne l'impression de perspective)

  5. #5
    Membre habitué Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Points : 161
    Points
    161
    Par défaut
    Merci pour vos réponse, surtout Mat.M pour tes conseils techniques précis (peut-être même un peu trop pour moi), sinon il y a le raycasting qui peut simuler la 3D si j'ai bien compris, je vais essayer de voir si j'arrive à quelquechose dans cette voie.

    EDIT: sur le mode7 :http://fr.wikipedia.org/wiki/Mode_7

  6. #6
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Citation Envoyé par Mat.M
    Pour les afficher il suffit de déterminer la distance du joueur avec ces objets du décor et d'appliquer un effet de zoom agrandissement ou rétrecissement selon la distance.
    Et encore je ne sais pas (c'est que ça date) s'il y avait un zoom. Un simple décalage vertical quand on s'approche et trois ou quatre tailles différentes pour le sprite histoire de donner l'illusion doivent suffire.

    Citation Envoyé par VinnieMc
    Merci pour vos réponse, surtout Mat.M pour tes conseils techniques précis (peut-être même un peu trop pour moi), sinon il y a le raycasting qui peut simuler la 3D si j'ai bien compris, je vais essayer de voir si j'arrive à quelquechose dans cette voie.
    Le raycasting EST de la 3d. Basique, mais 3d. C'est vraiment sortir la masse-à-mouche(tm) pour les lampadaires et pour le sol je ne le sens pas trop.


    Si tu veux utiliser le même genre de technique que l'original je crois qu'il faudra dessiner la route "à la main" (ou à coup de polygones pleins).
    Cela pourrait peut-être se faire en gardant le circuit sous la forme d'une suite de décalages horizontaux, vu que la route a une largeur fixe. On dessine en partant du segment du bas (de l'écran) et on va en s'éloignant en s'arrêtant au bout de N segments. Chaque segment est dessiné en alternant foncé/clair et le bout de route au milieu est décalé suivant la somme des décalages des segments précédants (depuis la position du joueur) et réduit suivant la distance.

    J'espère être compréhensible

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Effectivement il ne me semble pas qu'il y aie de zoom là dedans... on donne une impression de perspective en mettant deux ou trois plans d'arrière plans (ciel, décor par exemple) qui ne se décalent pas à la même vitesse dans les virages, plus des sprites (lampadaires) qui peuvent éventuellement apparaître coupés par le bas pour simuler la courbure de la terre (mais alors seulement quand on est dans une très longue ligne droite )
    Les virages sont bien faits par simple décalage de la route et pour que le joueur aie quand même l'impression de servir à quelque chose, la voiture a toujours une fâcheuse tendance à venir se mettre au milieu de l'écran et donc à foncer sur le bord extèrieur du virage.

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    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 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par VinnieMc
    Merci pour vos réponse, surtout Mat.M pour tes conseils techniques précis
    C'est gentil cela fait plaisir

    Citation Envoyé par PulkoMandy
    Effectivement il ne me semble pas qu'il y aie de zoom là dedans... on donne une impression de perspective en mettant deux ou trois plans d'arrière plans (ciel, décor par exemple) qui ne se décalent pas à la même vitesse dans les virages,
    Eh si parce que par exemple si tu as des arbres ou des maisons sur le bord de la route, il faut bien les agrandir avec la distance.
    Plus tu te rapproches plus ils sont visibles gros....
    Sinon effectivement les arrières plans contenus sur certaines "couches" comme le ciel par exemple dont tu parles, les nuages eux ne changent pas de taille

    Avec SDL par exemple il suffit de spécifier un rectangle source de taille identique contenant la bitmap et un rectangle cible avec Largeur et hauteur * 1.5 par ex.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Ben c'est ce qu'il faudrait faire pour que ça soit beau oui, mais j'ai pas l'impression que c'est ce qui était fait dans certains jeux auxquels j'ai pu jouer... ou on s'arrangeait avec la courbure de la planète et la distance jusqu'à laquelle on pouvait voir pour que ça ait l'air correct. On a alors un peu l'impression que les sprites du décor glissent sur l'image... mais bon, sur un ordi moderne on peut se permetre un redimensionnage. (sur une super nes aussi d'ailleurs, c'est accéléré par le chip graphique )

Discussions similaires

  1. [Android] Mon jeu de course de voiture: "Speed Intense Island"
    Par Lionel_D dans le forum Mon application mobile
    Réponses: 0
    Dernier message: 22/04/2015, 09h07
  2. Jeu de course de voitures
    Par flyweight dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 16/01/2008, 10h14
  3. course de voitures online
    Par zabadee dans le forum Projets
    Réponses: 7
    Dernier message: 21/03/2007, 20h16
  4. Jeu 3D de courses de voiture en réseau
    Par Flexinfo dans le forum Projets
    Réponses: 16
    Dernier message: 21/02/2007, 13h24

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