Coordonnée orthonormal et Coordonée Isometric

Programmation avancée de jeux en PureBasic
Anonyme

Message par Anonyme »

Sympa , dans le même ordre , je fait ceci :

File:1->EditorIsometric.rar
Image


Sinon , pour identifier un escalier , ou une pente , tu sais ou se trouve ton perso par rapport à ta map(x,y)

Il faut que tu identifie les tiles qui sont en pentes , par des constante , calcul de normale , ex... comme tu veut , le tout est de savoir si Map(PersoTileX,PersoTileY) et sur une pente , un escalier , etc...

pour un escalier , tu rajoute la hauteur de l'escalier à celle du perso
pour une pente , elle sont toutes de 45°
donc il est facile de déterminé la hauteur suivant la position sur la tuille

Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Merci , tu me confirme ce que je pensais !! :o)

Bravo pour ton Editeur ! c'est un peu l'idée que j'avais ! Très classe ! Très Beau !
Tient une question que je me posais, est ce que tu utilises des sprites3D ou des sprites normal ?
Actuellement j'utilise les sprite2D, mais c'est vrai que les Sprites 3D pour m'apporter des trucs en plus. mon seul souci c'est qu'on ne peut pas afficher des sprites 3D sur un Sprite. Ce qui est bien pratique pour afficher proprement plusieurs endroit de la map en même temps. Genre tu declanche un mécanisme et une fenêtre s'ouvre et te montre l'endroit de la carte ou le mécanisme a modifier quelques choses !
Anonyme

Message par Anonyme »

J'utilise uniquement des sprites 3D , pour montrer des bout de map


tu fait un rendu de l'endroit à affiché , puis via GrabSprite tu récupères l'écran , et tu affiches ton sprite.

Code : Tout sélectionner

If meca=1
clearscreen(0)
RenduZone(X,Y)
flipbuffers()
grabsprite()
etc...
meca=2
endif 


RenduFinal()

if Meca=2
DisplaySpriteD()
endif 
et hop , tu fait sauter la limitation. :D
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Cpl.Bator a écrit :J'utilise uniquement des sprites 3D , pour montrer des bout de map


tu fait un rendu de l'endroit à affiché , puis via GrabSprite tu récupères l'écran , et tu affiches ton sprite.

Code : Tout sélectionner

If meca=1
clearscreen(0)
RenduZone(X,Y)
flipbuffers()
grabsprite()
etc...
meca=2
endif 


RenduFinal()

if Meca=2
DisplaySpriteD()
endif 
et hop , tu fait sauter la limitation. :D
Oui c'est une technique que j'utilise pour un jeu que j'avais fait mais je trouve pas ça super propre ... Mais bon ça fonctionne c'est le principal !Et est ce que tu limites tes sprites a un format carré puissance de 2 ou bien en sprite3D du utilise n'importe quel forme et taille ?
Anonyme

Message par Anonyme »

ca dépends de la carte graphique et de l'api. pour évité tout problèmes , les sprites sont en n²
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Cpl.Bator a écrit :ca dépends de la carte graphique et de l'api. pour évité tout problèmes , les sprites sont en n²
Est ce que toute les carte graphique supporte maintenant les sprites non n² ?
C'est un peu chiant d'utiliser un sprite de 128x128 lorsqu'on a besoin que de 16x128 :)
Anonyme

Message par Anonyme »

logiquement oui , mais dans certain cas avec des (ati) ? ou de vieilles nvidia , tu peut avoir des résultats blanc :D
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Cpl.Bator a écrit :logiquement oui , mais dans certain cas avec des (ati) ? ou de vieilles nvidia , tu peut avoir des résultats blanc :D
Ok donc je sais ce qu'il me reste a faire :P
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Codage de Map 3D

Message par Cool Dji »

Salut Thyphoon,

Si un carré de ta MAP peut contenir plusieurs étages (style jeu de plateforme), je code le MAP en matrice tridimentionnelle x,y,z (Z=hauteur du "sol") . De là, mes cases de mon MAP ne sont plus des images plates mais des volumes.

Pour coder la marche, je pose 1 dans la matrice Z= pose un rectangle de base.
Pour coder la pente, de (2 à 5, selon l'angle d'attaque de la pente: 2=orienté sud, 3=orienté est,...).

Le pantin a le droit de monter une marche ou une pente dès lors que le carré sur lequel il souhaite se déplacer se situe à Z[+1] du niveau du carré sur lequel il se trouve.

J'ai un doute sur la clarté de mon propos mais je dois descendre préparer à manger !!!!
Je prendrai le temps de faire un exemple graphique after height !

Cool Dji
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Codage de Map 3D

Message par Thyphoon »

Cool Dji a écrit :Salut Thyphoon,

Si un carré de ta MAP peut contenir plusieurs étages (style jeu de plateforme), je code le MAP en matrice tridimentionnelle x,y,z (Z=hauteur du "sol") . De là, mes cases de mon MAP ne sont plus des images plates mais des volumes.

Pour coder la marche, je pose 1 dans la matrice Z= pose un rectangle de base.
Pour coder la pente, de (2 à 5, selon l'angle d'attaque de la pente: 2=orienté sud, 3=orienté est,...).

Le pantin a le droit de monter une marche ou une pente dès lors que le carré sur lequel il souhaite se déplacer se situe à Z[+1] du niveau du carré sur lequel il se trouve.

J'ai un doute sur la clarté de mon propos mais je dois descendre préparer à manger !!!!
Je prendrai le temps de faire un exemple graphique after height !

Cool Dji
Je crois comprendre ce que tu veux dire mais n'hesite pas pour l'exemple graphique ça peut être interessant :P
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

MAP 3D en 2D

Message par Cool Dji »

Voilà mon schéma,

Image
Le lien entre les cases peut se faire en x, y et z. Il suffit de pointer au bon endroit dans la matrice. Selon la valeur de la cellule le pantin sera autorisé ou non à joindre la cellule. ça, c'est le concept, ensuite coder le déplacement du gus comme dans l'exempe de la page web...sans parler du fait que le pantin trouve son plus court chemin tout seul !!!

Je sais pas si c'est le genre d'info que tu attendais ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

merci, je vais essayer de mettre ça en application ...
Répondre