Labyrinthe 3D - début d'un nouveau projet
Re: Labyrinthe 3D - début d'un nouveau projet
T'as mis les 2 fichiers graphiques dans le même dossier que la source ?
Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
OuiCool Dji a écrit :T'as mis les 2 fichiers graphiques dans le même dossier que la source ?
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Labyrinthe 3D - début d'un nouveau projet
ça marche ici.
Je trouve étrange ce genre d'accouds lorsque qu'on tourne en X
Je trouve étrange ce genre d'accouds lorsque qu'on tourne en X
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Labyrinthe 3D - début d'un nouveau projet
Héhé, MerciAr-S a écrit :Yeah bien joué, belles avancées![]()
Je vois pas ce que tu veux dire Ar-S : tu t'étonnes que les acteurs de films X se donnent des coups ?Ar-S a écrit :Je trouve étrange ce genre d'accouds lorsque qu'on tourne en X
Bon, sinon, il s'est passé un truc bizarre : j'ai testé l'executable avec la Engine3D.dll sur un PC ou PB n'est pas installé et le prog a planté. Alors, que j'avais déjà testé des productions au préalable (gaga punch, notamment) sur ce PC. C'est le poste d'un collègue qui me sert de machine à test !!
Problème sur le directory ? je regarde ça mais à la maison tous les ordis ont PureBasic d'installé !!
SPH, ça te fait quoi précisément ? (tu peux mettre une copie d'écran ?)
Est-ce que ça peut avoir un lien avec l'option du compilateur (ps : ne pas mettre directX dans bibliothèque sous systeme avec la 4.51)
Only PureBasic makes it possible
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
Re: Labyrinthe 3D - début d'un nouveau projet
avec la 3D, il y a peut être une dll indispensable, comme Engine3D.dll, faut poser la question sur le forum english.Cool Dji a écrit :Bon, sinon, il s'est passé un truc bizarre : j'ai testé l'executable avec la Engine3D.dll sur un PC ou PB n'est pas installé et le prog a planté. Alors, que j'avais déjà testé des productions au préalable (gaga punch, notamment) sur ce PC. C'est le poste d'un collègue qui me sert de machine à test !!Ar-S a écrit :Yeah bien joué, belles avancées![]()
Problème sur le directory ? je regarde ça mais à la maison tous les ordis ont PureBasic d'installé !!
SPH, ça te fait quoi précisément ? (tu peux mettre une copie d'écran ?)
Est-ce que ça peut avoir un lien avec l'option du compilateur (ps : ne pas mettre directX dans bibliothèque sous systeme avec la 4.51)
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
Re: Labyrinthe 3D - début d'un nouveau projet
Je trouve étrange ce genre d'accouds lorsque qu'on tourne en X
If ExamineMouse()
MouseX.f = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY.f = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
++
Re: Labyrinthe 3D - début d'un nouveau projet
@G-Rom : Merci pour le .f, du coup j'ai compris la question d'Ar-S !!
@Beauregard : Cool de te lire sur le forum, ça faisait longtemps !! Je vais faire différentes versions à test que j'essayerai chez mon collègue : la principale piste => j'ai lancé depuis une clé USB, faut peut être copier sur le Disque Dur...
Je continue de travailler sur un affichage face par face sans passer par un cube complet. Ca permet de varier les textures plus facilement et d'intégrer de temps en temps des textures du style comme celle-ci...

Tout de suite, on a envie de se perdre dans le labyrinthe...

@Beauregard : Cool de te lire sur le forum, ça faisait longtemps !! Je vais faire différentes versions à test que j'essayerai chez mon collègue : la principale piste => j'ai lancé depuis une clé USB, faut peut être copier sur le Disque Dur...
Je continue de travailler sur un affichage face par face sans passer par un cube complet. Ca permet de varier les textures plus facilement et d'intégrer de temps en temps des textures du style comme celle-ci...




Tout de suite, on a envie de se perdre dans le labyrinthe...

Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
De rien.
Essaye d'utilisé des "plans" a la place des cubes pour le sol , tu vas gagner pas mal de tps proc.
pour les poster , utilise les billboards , c'est fait pour ca.
Far , la distance lointaine.

Essaye d'utilisé des "plans" a la place des cubes pour le sol , tu vas gagner pas mal de tps proc.
pour les poster , utilise les billboards , c'est fait pour ca.
Near correspond a la zone de clipping de ton frustum culling ( qui est implémenté en natif )CameraRange(CamID,Near,Far)
Far , la distance lointaine.

Re: Labyrinthe 3D - début d'un nouveau projet
Après essais,
ça prends moins de temps d'afficher 6 faces d'un cube avec le même mesh que d'afficher 2 faces d'un cube avec 2 mesh différents !!!
Donc le nombre de mesh est un facteur d'optimisation important.
Je vais tester et comparer :
1 - garder l'unité du cube en n'affichant que les faces utiles
2 - placer toutes les faces visibles dans un seul mesh => Est-ce que c'est le principe utilisé dans la fonction LoadWord() ?
3 - agréger des faces pour faire des plans => ça risque de faire un grand nombre de texture différentes
ça prends moins de temps d'afficher 6 faces d'un cube avec le même mesh que d'afficher 2 faces d'un cube avec 2 mesh différents !!!
Donc le nombre de mesh est un facteur d'optimisation important.
Je vais tester et comparer :
1 - garder l'unité du cube en n'affichant que les faces utiles
2 - placer toutes les faces visibles dans un seul mesh => Est-ce que c'est le principe utilisé dans la fonction LoadWord() ?
3 - agréger des faces pour faire des plans => ça risque de faire un grand nombre de texture différentes
Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
pourquoi pas.1 - garder l'unité du cube en n'affichant que les faces utiles
Erreur , tu auras des problèmes d'optimisations , le frustum detecte si un mesh est dans le champ de vision , si oui , il parcours les faces du mesh , on l'occurence tout ton niveau. pour loadworld , l'engine utilise un paging géometry différent.2 - placer toutes les faces visibles dans un seul mesh => Est-ce que c'est le principe utilisé dans la fonction LoadWord() ?
LoadWorld() sera surement supprimer , format obselete.
tu auras à la place des static geometry , 1 millions de cube ne ferons pas peur à pb.
Re: Labyrinthe 3D - début d'un nouveau projet
Oki G-Rom
1 million !!!!!
1 million !!!!!

Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
Nouvelle progression grâce à la rubrique de Comtois sur la construction de mesh
http://comtois.developpez.com/tutoriels ... 3d/cube3d/
Je cherchais une rubrique aussi essentielle depuis longtemps et je suis tombé dessus seulement aujourd'hui...
Merci donc Comtois d'avoir posté ce post en 2008 !!
Gràce à cela, j'ai compris comment rendre visible les faces de l'intérieur du cube car je cherchais le moyen de pouvoir déambuler à l'interieur des mesh...
J'ai défini (avec un tableur excel) toutes les possibilités de cubes de 1 à 6 faces.
le cube 1 a la face du dessus
le cube 2 a la face de dessous
le cube 3 a la face du dessus et du dessous
.
.
.
le cube 64 a toutes les faces
Ceci me permet de construire un labyrinthe avec un ensemble de briques différentes et je n'affiche que le strict minimum de faces.
Là c'est encore un peu de la théorie car j'ai confondu ordre des points et normale pour rendre les faces visibles de l'interieur ou de l'exterieur du cube.
Là, seuls les cubes 15 et 48 sont opérationnels (il faut juste que je relance excel pour générer tous les 64 cubes).
Je vais ajouter d'autres briques spécifiques comme des escaliers ou des rampes...
Ce week-end, je vais :
- finir cette version (avec tous les cubes possibles)
- améliorer et commenter le code
- refaire un labyrinthe plus sympa
En attendant, si vous êtes curieux :
Texture01.jpg

Police.bmp

DefinitionCube.txt (c'est l'include qui contient la définition des 64 mesh-cubes)
http://xdji.free.fr/Telechargement/DefinitionCube.txt
Edit 19 février
http://comtois.developpez.com/tutoriels ... 3d/cube3d/
Je cherchais une rubrique aussi essentielle depuis longtemps et je suis tombé dessus seulement aujourd'hui...
Merci donc Comtois d'avoir posté ce post en 2008 !!
Gràce à cela, j'ai compris comment rendre visible les faces de l'intérieur du cube car je cherchais le moyen de pouvoir déambuler à l'interieur des mesh...
J'ai défini (avec un tableur excel) toutes les possibilités de cubes de 1 à 6 faces.
le cube 1 a la face du dessus
le cube 2 a la face de dessous
le cube 3 a la face du dessus et du dessous
.
.
.
le cube 64 a toutes les faces
Ceci me permet de construire un labyrinthe avec un ensemble de briques différentes et je n'affiche que le strict minimum de faces.
Là c'est encore un peu de la théorie car j'ai confondu ordre des points et normale pour rendre les faces visibles de l'interieur ou de l'exterieur du cube.
Là, seuls les cubes 15 et 48 sont opérationnels (il faut juste que je relance excel pour générer tous les 64 cubes).
Je vais ajouter d'autres briques spécifiques comme des escaliers ou des rampes...
Ce week-end, je vais :
- finir cette version (avec tous les cubes possibles)
- améliorer et commenter le code
- refaire un labyrinthe plus sympa
En attendant, si vous êtes curieux :
Texture01.jpg

Police.bmp

DefinitionCube.txt (c'est l'include qui contient la définition des 64 mesh-cubes)
http://xdji.free.fr/Telechargement/DefinitionCube.txt
Code : Tout sélectionner
; Cool Dji, Février 2011, PB 4.51
#CameraSpeed = 10
#Hauteur = 100
test.i =0
decacam.i=1
InitSprite() : InitKeyboard() :InitEngine3D() : InitMouse() : InitSprite3D()
AntialiasingMode(#PB_AntialiasingMode_x6)
OpenScreen(1024, 768, 32, "Circuit")
;Add3DArchive("\Texture\", #PB_3DArchive_FileSystem)
Add3DArchive("\", #PB_3DArchive_FileSystem)
;- Génération de la police de caractère
LoadImage(0,"police.bmp")
For j =0 To 46:GrabImage(0,1,j*6,0,6,7)
CreateSprite(j,6,7,#PB_Sprite_Texture):TransparentSpriteColor(j, 0)
StartDrawing(SpriteOutput(j)):DrawImage(ImageID(1),0,0): StopDrawing()
CreateSprite3D(j, j):Next
;- code Création d'un cube de 3d - Comtois
;-Mesh
CreateMesh(1, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(1, Options , ?Sommets_1, 4*1)
SetMeshData(1, #PB_Mesh_Face, ?Triangles_1, 2*1)
CreateMesh(2, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(2, Options , ?Sommets_2, 4*1)
SetMeshData(2, #PB_Mesh_Face, ?Triangles_2, 2*1)
CreateMesh(3, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(3, Options , ?Sommets_3, 4*2)
SetMeshData(3, #PB_Mesh_Face, ?Triangles_3, 2*1*2)
CreateMesh(4, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(4, Options , ?Sommets_4, 4*1)
SetMeshData(4, #PB_Mesh_Face, ?Triangles_4, 2*1)
CreateMesh(5, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(5, Options , ?Sommets_5, 4*2)
SetMeshData(5, #PB_Mesh_Face, ?Triangles_5, 2*2)
CreateMesh(6, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(6, Options , ?Sommets_6, 4*2)
SetMeshData(6, #PB_Mesh_Face, ?Triangles_6, 2*2)
CreateMesh(7, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(7, Options , ?Sommets_7, 4*3)
SetMeshData(7, #PB_Mesh_Face, ?Triangles_7, 2*3)
CreateMesh(8, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(8, Options , ?Sommets_8, 4*1)
SetMeshData(8, #PB_Mesh_Face, ?Triangles_8, 2*1)
CreateMesh(9, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(9, Options , ?Sommets_9, 4*2)
SetMeshData(9, #PB_Mesh_Face, ?Triangles_9, 2*2)
CreateMesh(10, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(10, Options , ?Sommets_10, 4*2)
SetMeshData(10, #PB_Mesh_Face, ?Triangles_10, 2*2)
CreateMesh(11, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(11, Options , ?Sommets_11, 4*3)
SetMeshData(11, #PB_Mesh_Face, ?Triangles_11, 2*3)
CreateMesh(12, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(12, Options , ?Sommets_12, 4*2)
SetMeshData(12, #PB_Mesh_Face, ?Triangles_12, 2*2)
CreateMesh(13, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(13, Options , ?Sommets_13, 4*3)
SetMeshData(13, #PB_Mesh_Face, ?Triangles_13, 2*3)
CreateMesh(14, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(14, Options , ?Sommets_14, 4*3)
SetMeshData(14, #PB_Mesh_Face, ?Triangles_14, 2*3)
CreateMesh(15, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(15, Options , ?Sommets_15, 4*4)
SetMeshData(15, #PB_Mesh_Face, ?Triangles_15, 2*4)
CreateMesh(16, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(16, Options , ?Sommets_16, 4*1)
SetMeshData(16, #PB_Mesh_Face, ?Triangles_16, 2*1)
CreateMesh(17, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(17, Options , ?Sommets_17, 4*2)
SetMeshData(17, #PB_Mesh_Face, ?Triangles_17, 2*2)
CreateMesh(18, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(18, Options , ?Sommets_18, 4*2)
SetMeshData(18, #PB_Mesh_Face, ?Triangles_18, 2*2)
CreateMesh(19, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(19, Options , ?Sommets_19, 4*3)
SetMeshData(19, #PB_Mesh_Face, ?Triangles_19, 2*3)
CreateMesh(20, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(20, Options , ?Sommets_20, 4*2)
SetMeshData(20, #PB_Mesh_Face, ?Triangles_20, 2*2)
CreateMesh(21, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(21, Options , ?Sommets_21, 4*3)
SetMeshData(21, #PB_Mesh_Face, ?Triangles_21, 2*3)
CreateMesh(22, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(22, Options , ?Sommets_22, 4*3)
SetMeshData(22, #PB_Mesh_Face, ?Triangles_22, 2*3)
CreateMesh(23, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(23, Options , ?Sommets_23, 4*4)
SetMeshData(23, #PB_Mesh_Face, ?Triangles_23, 2*4)
CreateMesh(24, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(24, Options , ?Sommets_24, 4*2)
SetMeshData(24, #PB_Mesh_Face, ?Triangles_24, 2*2)
CreateMesh(25, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(25, Options , ?Sommets_25, 4*3)
SetMeshData(25, #PB_Mesh_Face, ?Triangles_25, 2*3)
CreateMesh(26, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(26, Options , ?Sommets_26, 4*3)
SetMeshData(26, #PB_Mesh_Face, ?Triangles_26, 2*3)
CreateMesh(27, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(27, Options , ?Sommets_27, 4*4)
SetMeshData(27, #PB_Mesh_Face, ?Triangles_27, 2*4)
CreateMesh(28, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(28, Options , ?Sommets_28, 4*3)
SetMeshData(28, #PB_Mesh_Face, ?Triangles_28, 2*3)
CreateMesh(29, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(29, Options , ?Sommets_29, 4*4)
SetMeshData(29, #PB_Mesh_Face, ?Triangles_29, 2*4)
CreateMesh(30, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(30, Options , ?Sommets_30, 4*4)
SetMeshData(30, #PB_Mesh_Face, ?Triangles_30, 2*4)
CreateMesh(31, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(31, Options , ?Sommets_31, 4*5)
SetMeshData(31, #PB_Mesh_Face, ?Triangles_31, 2*5)
CreateMesh(32, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(32, Options , ?Sommets_32, 4*1)
SetMeshData(32, #PB_Mesh_Face, ?Triangles_32, 2*1)
CreateMesh(33, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(33, Options , ?Sommets_33, 4*2)
SetMeshData(33, #PB_Mesh_Face, ?Triangles_33, 2*2)
CreateMesh(34, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(34, Options , ?Sommets_34, 4*2)
SetMeshData(34, #PB_Mesh_Face, ?Triangles_34, 2*2)
CreateMesh(35, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(35, Options , ?Sommets_35, 4*3)
SetMeshData(35, #PB_Mesh_Face, ?Triangles_35, 2*3)
CreateMesh(36, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(36, Options , ?Sommets_36, 4*2)
SetMeshData(36, #PB_Mesh_Face, ?Triangles_36, 2*2)
CreateMesh(37, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(37, Options , ?Sommets_37, 4*3)
SetMeshData(37, #PB_Mesh_Face, ?Triangles_37, 2*3)
CreateMesh(38, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(38, Options , ?Sommets_38, 4*3)
SetMeshData(38, #PB_Mesh_Face, ?Triangles_38, 2*3)
CreateMesh(39, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(39, Options , ?Sommets_39, 4*4)
SetMeshData(39, #PB_Mesh_Face, ?Triangles_39, 2*4)
CreateMesh(40, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(40, Options , ?Sommets_40, 4*2)
SetMeshData(40, #PB_Mesh_Face, ?Triangles_40, 2*2)
CreateMesh(41, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(41, Options , ?Sommets_41, 4*3)
SetMeshData(41, #PB_Mesh_Face, ?Triangles_41, 2*3)
CreateMesh(42, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(42, Options , ?Sommets_42, 4*3)
SetMeshData(42, #PB_Mesh_Face, ?Triangles_42, 2*3)
CreateMesh(43, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(43, Options , ?Sommets_43, 4*4)
SetMeshData(43, #PB_Mesh_Face, ?Triangles_43, 2*4)
CreateMesh(44, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(44, Options , ?Sommets_44, 4*3)
SetMeshData(44, #PB_Mesh_Face, ?Triangles_44, 2*3)
CreateMesh(45, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(45,Options , ?Sommets_45, 4*4)
SetMeshData(45, #PB_Mesh_Face, ?Triangles_45, 2*4)
CreateMesh(46, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(46, Options , ?Sommets_46, 4*4)
SetMeshData(46, #PB_Mesh_Face, ?Triangles_46, 2*4)
CreateMesh(47, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(47, Options , ?Sommets_47, 4*5)
SetMeshData(47, #PB_Mesh_Face, ?Triangles_47, 2*5)
CreateMesh(48, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(48, Options , ?Sommets_48, 4*2)
SetMeshData(48, #PB_Mesh_Face, ?Triangles_48, 2*2)
CreateMesh(49, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(49, Options , ?Sommets_49, 4*3)
SetMeshData(49, #PB_Mesh_Face, ?Triangles_49, 2*3)
CreateMesh(50, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(50, Options , ?Sommets_50, 4*3)
SetMeshData(50, #PB_Mesh_Face, ?Triangles_50, 2*3)
CreateMesh(51, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(51, Options , ?Sommets_51, 4*4)
SetMeshData(51, #PB_Mesh_Face, ?Triangles_51, 2*4)
CreateMesh(52, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(52, Options , ?Sommets_52, 4*3)
SetMeshData(52, #PB_Mesh_Face, ?Triangles_52, 2*3)
CreateMesh(53, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(53, Options , ?Sommets_53, 4*4)
SetMeshData(53, #PB_Mesh_Face, ?Triangles_53, 2*4)
CreateMesh(54, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(54, Options , ?Sommets_54, 4*4)
SetMeshData(54, #PB_Mesh_Face, ?Triangles_54, 2*4)
CreateMesh(55, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(55, Options , ?Sommets_55, 4*5)
SetMeshData(55, #PB_Mesh_Face, ?Triangles_55, 2*5)
CreateMesh(56, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(56, Options , ?Sommets_56, 4*3)
SetMeshData(56, #PB_Mesh_Face, ?Triangles_56, 2*3)
CreateMesh(57, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(57, Options , ?Sommets_57, 4*4)
SetMeshData(57, #PB_Mesh_Face, ?Triangles_57, 2*4)
CreateMesh(58, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(58, Options , ?Sommets_58, 4*4)
SetMeshData(58, #PB_Mesh_Face, ?Triangles_58, 2*4)
CreateMesh(59, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(59, Options , ?Sommets_59, 4*5)
SetMeshData(59, #PB_Mesh_Face, ?Triangles_59, 2*5)
CreateMesh(60, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(60, Options , ?Sommets_60, 4*4)
SetMeshData(60, #PB_Mesh_Face, ?Triangles_60, 2*4)
CreateMesh(61, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(61, Options , ?Sommets_61, 4*5)
SetMeshData(61, #PB_Mesh_Face, ?Triangles_61, 2*5)
CreateMesh(62, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(62, Options , ?Sommets_62, 4*5)
SetMeshData(62, #PB_Mesh_Face, ?Triangles_62, 2*5)
CreateMesh(63, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(63, Options , ?Sommets_63, 4*6)
SetMeshData(63, #PB_Mesh_Face, ?Triangles_63, 2*6)
;-Textures
LoadTexture(0,"Texture01.jpg")
;-Matière
CreateMaterial(0, TextureID(0))
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,300,#Hauteur+#Hauteur/2,300)
CameraLookAt(0,1000,0,1000)
;-
;-- Tableau pour les cases du labyrinthe
Dim hauteur.f(900*2)
Dim posx.f(900*2)
Dim posy.f(900*2)
Dim mposx.f(1)
Dim mposy.f(1)
Dim mposz.f(1)
Dim mmesh.i(1)
nbmesh=0
current = 0
Restore Labyrinthe
Repeat
Read.w hauteur(current)
current+1
Until current = 900*2
;---- place chaque case en X et Y
j=0
For l=1 To 2
For i=1 To 3000 Step 100
For k=1 To 3000 Step 100
If hauteur(j)>0
nbmesh=nbmesh+1
ReDim mposx(nbmesh)
ReDim mposy(nbmesh)
ReDim mposz(nbmesh)
ReDim mmesh(nbmesh)
mposx(nbmesh)=k
mposy(nbmesh)=i
mposz(nbmesh)=l*#Hauteur
mmesh(nbmesh)=hauteur(j)
EndIf
posx(j)=k
posy(j)=i
j=j+1
Next
Next
Next ; l
#Entity = 0
For j=1 To nbmesh
;- Affecte le bon mesh
; si hauteur <> 00 ou -1, creation d'un mesh avec sauvegarde des coordonnées pour chaque mesh
CreateEntity(j, MeshID(mmesh(j)), MaterialID(0))
; CreateEntity(j, MeshID(0), MaterialID(10))
ScaleEntity(j, 100, #Hauteur, 100) ; Agrandi l'entity
Next
;-
;-- Gestion des textes
;Chaine qui indique l'ordre des lettres contenues dans l'image "Gaga Punch.bmp"
Global Strig$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-"
; Déclaration de la procédre qui affiche les textes
; (Texte à afficher, position Y, taille, n° de sprite, max aléatoire pour faire trembler la lettre)
Declare AffT(TextMenu01$,y.i,sz.i,sprite.i,rnd.i)
; le texte est automatiquement centré
; Text$ = TExt à afficher
; y =position y du text
; sz =Taille de la police (sert pour le zomm des lettres et de l'espacement)
; sp =Pointe sur le sprite A de la bonne police
; rnd =valeur de tremblement des lettres
Procedure AffT(Text$,y.i,sz.i,sp.i,rnd.i)
sx=0:For i=1 To Len(Text$):For j=1 To Len(Strig$)
If Mid(Text$,i,1)=Mid(Strig$,j,1):a=sz+2
DisplaySprite3D(sp+j-1,sx+Random(rnd)+400-(Len(Text$)*a)/2,y+Random(rnd),200)
sx=sx+sz+2:j=Len(Strig$):EndIf :Next:Next
EndProcedure
;-
;- BIG LOOP
Repeat
; --
For j=1 To nbmesh
EntityLocate(j,mposx(j),mposz(j),mposy(j))
Next
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
If ExamineMouse()
MouseX.f = -(MouseDeltaX()/10)*#CameraSpeed/2
MouseY.f = -(MouseDeltaY()/10)*#CameraSpeed/2
EndIf
;- Position de la Camera
Height.f = 11 ; TerrainHeight(CameraX(0), CameraZ(0))
RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
;-- Test des collisions
;--- Sauvegarde l'ancienne position
olkdkeyX=CameraX(0)
olkdkeyY=CameraY(0)
olkdkeyZ=CameraZ(0)
;--- Déplace la camera
MoveCamera (0, KeyX, -CameraY(0)+#Hauteur+#Hauteur/2, KeyY)
;--- Regarde si la camera est dans le décor
test=0
For j=0 To 899
If hauteur(j)=0
If ((CameraX(0)+decacam>=posx(j)) And (CameraX(0)-decacam=<posx(j)+100) And (CameraZ(0)+decacam>=posy(j)) And (CameraZ(0)-decacam=<posy(j)+100))
test=1
EndIf
EndIf
Next
If test= 1
;---- Si oui, replace-là à son ancienne position
CameraLocate(0,olkdkeyX, olkdkeyY, olkdkeyZ)
EndIf
RenderWorld()
Start3D()
AffT("KEY UP AND DOWN MOUSE TO MOVE AND TURN",80,6,0,0)
AffT("X "+Str(CameraX(0)),100,6,0,0)
AffT("Y "+Str(CameraY(0)),110,6,0,0)
AffT("Z "+Str(CameraZ(0)),120,6,0,0)
AffT(Str(CountRenderedTriangles())+" TRIANGLES",200,6,0,0)
AffT(Str(Engine3DFrameRate(#PB_Engine3D_Current))+" FPS",210,6,0,0)
Stop3D()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape):
End
;{ Définition du cube
DataSection
IncludeFile ("DefinitionCube.txt")
Labyrinthe:
; -1 = espace vide => pas de mesh
; 00 = obstacle => pas de mesh
; 01 à 64 = brique sans test de collision
; Dessus Dessous devant derrière gauche droite
; 32 16 8 4 2 1
; Devant
;
;
; Droite Gauche
;
;
; Derriere
; Etage 00
Data.w 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Data.w 00,22,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,24,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,19,00,00,18,16,16,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,20,20,16,16,16,16,16,17,00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,17,00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,17,00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,00,16,16,16,16,16,16,17,00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,17,00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,20,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,18,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,00
Data.w 00,26,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,00
Data.w 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
; Etage 01
Data.w 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Data.w 00,06,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,21,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,00
Data.w 00,26,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,00
Data.w 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
EndDataSection
;}
Dernière modification par Cool Dji le sam. 19/févr./2011 18:29, modifié 2 fois.
Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
Ça prend un bouton "J'aime", définitivement! 

Re: Labyrinthe 3D - début d'un nouveau projet
Mignonne, hein la miss !
Bon, j'ai changé la structure du Map Editor pour ne créer des mesh que lorsqu'il y en faut...
case 00 = obstacle
case -1 = espace vide
case 01 à 64, briques du map editor
J'ai ajouté la possibilité d'avoir plusieurs étages dans le Map Editor...
J'ai remplacé le code précédent et pour que ça marche, il faut également mettre à jour la définition des cube (include en datasection)
J'ai oublié de paramétrer le mapping des faces, du coup, on perd en réalisme...
Stop coding, moules frites à préparer pour le repas du soir !!
Bon, j'ai changé la structure du Map Editor pour ne créer des mesh que lorsqu'il y en faut...
case 00 = obstacle
case -1 = espace vide
case 01 à 64, briques du map editor
J'ai ajouté la possibilité d'avoir plusieurs étages dans le Map Editor...
J'ai remplacé le code précédent et pour que ça marche, il faut également mettre à jour la définition des cube (include en datasection)
J'ai oublié de paramétrer le mapping des faces, du coup, on perd en réalisme...
Stop coding, moules frites à préparer pour le repas du soir !!
Only PureBasic makes it possible
Re: Labyrinthe 3D - début d'un nouveau projet
J'ai une petite remarque à faire. Je ne comprend pour quoi, mais :
Lorsque je regarde les cubes, j'ai 40 FPS, stable. Mais lorsque je regarde dans le vide, au plafond, j'ai une drop d'FPS vers les 30.
Lorsque je regarde les cubes, j'ai 40 FPS, stable. Mais lorsque je regarde dans le vide, au plafond, j'ai une drop d'FPS vers les 30.