Page 2 sur 2

Publié : dim. 26/oct./2008 13:16
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

Publié : dim. 26/oct./2008 13:43
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 !

Publié : dim. 26/oct./2008 13:48
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

Publié : dim. 26/oct./2008 15:25
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 ?

Publié : dim. 26/oct./2008 16:49
par Anonyme
ca dépends de la carte graphique et de l'api. pour évité tout problèmes , les sprites sont en n²

Publié : dim. 26/oct./2008 16:54
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 :)

Publié : dim. 26/oct./2008 17:03
par Anonyme
logiquement oui , mais dans certain cas avec des (ati) ? ou de vieilles nvidia , tu peut avoir des résultats blanc :D

Publié : dim. 26/oct./2008 17:07
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

Codage de Map 3D

Publié : dim. 26/oct./2008 18:39
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

Re: Codage de Map 3D

Publié : dim. 26/oct./2008 18:46
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

MAP 3D en 2D

Publié : dim. 26/oct./2008 21:19
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 ?

Publié : dim. 26/oct./2008 22:01
par Thyphoon
merci, je vais essayer de mettre ça en application ...