Un petit coup de pouce (Je sais encore un ..)
Un petit coup de pouce (Je sais encore un ..)
Pour faire un circuit à la pureRacer, sa tourne comment ?
On fait pas de terrain la ?
Enfin, le truc c'est que j'essaye de bien comprendre la 3D :p
On fait pas de terrain la ?
Enfin, le truc c'est que j'essaye de bien comprendre la 3D :p
pureracer est fait avec des sprites 3D , je crois que le source était dispo sur le site de l'auteur ? ou je confonds avec un autre code ?
Et je crois qu'il va faire une version en 3D .
Pour ton circuit, tu peux essayer de le faire avec un terrain,Pourquoi pas.
mais l'intérêt d'un terrain c'est de créer un volume , si tu fais un circuit plat ,ce n'est peut-être pas utile ?
Remarque si , tu peux gérer les collisions en jouant sur la hauteur du terrain , en relevant les bords du circuit , et en testant la position en hauteur sur le terrain , ça peut te faire une gestion de collision simple .
J'avais commencé avec un éditeur de map de mon cru , à la façon des maps 2D qui assemblent des tiles , pour créer un circuit en 3D , le moteur affiche des crénelures entre les pièces ,ou alors il y a des jours , je n'aime pas trop l'aspect , bon je n'ai pas trop cherché non plus pour améliorer le truc , c'était un bout d'essai, mais ça rendait quand même déjà mieux que mon autre essai avec seulement une texture en guise de circuit !
Bon je ne suis pas bien placé pour donner des conseils , je n'ai aucune idée de la façon la mieux adaptée pour créer un jeu de course
J'ai fait une petite tentative très rapide , pour me faire une petite idée des possibilités 3D de PB . ça n'a rien à voir avec un jeu de course ,il y a tout à reprendre .
Et ensuite , le plus dur , ça reste la gestion de la voiture
Et je crois qu'il va faire une version en 3D .
Pour ton circuit, tu peux essayer de le faire avec un terrain,Pourquoi pas.
mais l'intérêt d'un terrain c'est de créer un volume , si tu fais un circuit plat ,ce n'est peut-être pas utile ?
Remarque si , tu peux gérer les collisions en jouant sur la hauteur du terrain , en relevant les bords du circuit , et en testant la position en hauteur sur le terrain , ça peut te faire une gestion de collision simple .
J'avais commencé avec un éditeur de map de mon cru , à la façon des maps 2D qui assemblent des tiles , pour créer un circuit en 3D , le moteur affiche des crénelures entre les pièces ,ou alors il y a des jours , je n'aime pas trop l'aspect , bon je n'ai pas trop cherché non plus pour améliorer le truc , c'était un bout d'essai, mais ça rendait quand même déjà mieux que mon autre essai avec seulement une texture en guise de circuit !
Bon je ne suis pas bien placé pour donner des conseils , je n'ai aucune idée de la façon la mieux adaptée pour créer un jeu de course

J'ai fait une petite tentative très rapide , pour me faire une petite idée des possibilités 3D de PB . ça n'a rien à voir avec un jeu de course ,il y a tout à reprendre .
Et ensuite , le plus dur , ça reste la gestion de la voiture

Ben , y'a vraiment que moi qui peut l'utiliser , il est pas fini , je dirais même qu'il est entièrement à reprendre , je dois bricoler un peu le code pour l'adapter selon ce que je fais , pas terrible pour le distribuer hein ?CORBASE a écrit :Par contre, ya pas moyen d'essayer ton editeur de Map

mais tu peux faire ça très simplement avec des datas ou sur le site de polux , il a mis un petit éditeur très simple , que tu peux adapter pour créer ton circuit .
le principe avec des datas
Data.w 1,1,1,2,3,1,1
Data.w 1,1,2,3,4,1,1
etc
tu décris ton circuit dans les datas , avec
1 = texture herbe
2 = texture virage à droite
3 = texture virage à gauche
4 = texture ligne droite verticale
5 = texture ligne droite horizontale
c'est un exemple
ensuite pour construire ton circuit , tu appliques tes textures à un mesh de type plain , il ne contient que deux polygones , et tu places tes meshs comme pour une map 2D
voila les datas pour faire un plain
Code : Tout sélectionner
;-Mesh
CreateMesh(#MeshPlain) ;Plain
SetMeshData(#MeshPlain, 0, ?PlainPoints , 4)
SetMeshData(#MeshPlain, 1, ?PlainTriangles , 4)
SetMeshData(#MeshPlain, 2, ?PlainTextures , 4)
datasection
PlainPoints:
Data.f -0.5, 0, -0.5
Data.f 0.5 , 0, -0.5
Data.f 0.5 , 0, 0.5
Data.f -0.5, 0, 0.5
PlainTriangles:
Data.w 0, 1, 2
Data.w 0, 2, 3
Data.w 2, 1, 0
Data.w 3, 2, 0
PlainTextures:
Data.f 0, 0
Data.f 1, 0
Data.f 1, 1
Data.f 0, 1
enddatasection
Code : Tout sélectionner
CreateEntity(NoEntity , MeshID(NoMesh) , MaterialID(Type))
ScaleEntity(NoEntity , #TailleEntity , #TailleEntity , #TailleEntity)
EntityLocate(NoEntity , x * #TailleEntity , EntityH , z * #TailleEntity)
Merci pour le code c'est cool, j'essayerais plus tard, car la j'essaye de comprendre comment mettre un mesh sur un terrain, voici mon code, je n'est que le terrain, et je ne voit pas mon mesh :
Si quelqu'unpourra m'aider sur ce coup la, ça serait vraiment cool :p
Et encore merci Comtois pour ton aide INESTIMABLE !
Code : Tout sélectionner
;- Robot
LoadMesh (#RobotMesh , "Robot.mesh")
LoadTexture(#RobotTexture, "r2skin.jpg")
CreateMaterial(0, TextureID(#RobotTexture))
CreateEntity(#Robot, MeshID(#RobotMesh), MaterialID(0))
EntityMaterial(#Robot, MaterialID(0))
AnimateEntity(#Robot, "Walk")
DisableMaterialLighting(0, 1)
MaterialAmbientColor(0, RGB(100, 100, 100))
MaterialSpecularColor(0, RGB(255, 255, 255))
ScrollMaterial(0, 0.15, 0, 1)
CreateLight(0, RGB(0,0,255), 100.0, 0, 0)
LightSpecularColor(0, RGB(255, 0, 0))
;- Terrain
If LoadTexture(1, "terrain_tex3.png")=0
MessageRequester("","Error LoadTexture",0):End:EndIf
CreateMaterial(1,TextureID(1))
If CreateTerrain("terrain.png", MaterialID(1), 0.5, 0.6, 0.5, 0.5) = 0
MessageRequester("","Error CreateTerrain",0):End:EndIf
SkyBox("Stevecube.jpg")
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 128, 25, 128)
Et encore merci Comtois pour ton aide INESTIMABLE !
j'ai mis un source 3D ici , ça peut déjà te donner quelques idées
regarde la gestion de la camera dans la procedure gestioncamera()
il y a des trucs que tu peux supprimer pour faire simple au début
http://purebasic.hmt-forum.com/viewtopic.php?t=91
le principe , c'est que les touches agissent sur le personnage , donc ici ton robot ,et tu règles la camera pour qu'elle suive le robot .
pour cela , tu places la camera derrière le robot
tu peux récupérer les fonctions newXvalue() et NewZvalue()
un exemple d'utilisation
regarde la gestion de la camera dans la procedure gestioncamera()
il y a des trucs que tu peux supprimer pour faire simple au début
http://purebasic.hmt-forum.com/viewtopic.php?t=91
le principe , c'est que les touches agissent sur le personnage , donc ici ton robot ,et tu règles la camera pour qu'elle suive le robot .
pour cela , tu places la camera derrière le robot
tu peux récupérer les fonctions newXvalue() et NewZvalue()
un exemple d'utilisation
Code : Tout sélectionner
PosXCamera.f = NewXValue(EntityX(0) , Robot\AngleX + 180 , Camera\Distance)
PosYCamera.f = EntityY(0) + 30
PosZCamera.f = NewZValue(EntityZ(0) , Robot\AngleX + 180 , Camera\Distance)
;positionne la camera derrière ,et légèrement au dessus du robot
CameraLocate(0 , PosXCamera , PosYCamera , PosZCamera)
;et on oriente la camera en direction du robot
CameraLookAt(0 , EntityX(0) , EntityY(0) , EntityZ(0))