bon mon premier code Dreamotion3D
ceci est un code de base pour les grands débutants comme moi
j'ai mis un max de commentaires
j'utilise seulement les formes predefini dans le moteur, donc le plus simple pour tous les grands débutants comme moi
aucune texture (je sais encore pas comment ça marche

)
juste une lumière pour "voir" le résultat
il suffit de commenter chaque objets pour le voir dans le moteur
bien sur tout les objet se mette a la même position donc il faut commenter les objets précédemment décommenter sinon il y aura superposition des objets
voici le code
; Init different modules
; Fichiers Include
; voir le dreamotion3d.pbi pour le details des commandes reconnu
IncludePath "Include\"
IncludeFile "d3dx9.pbi"
IncludeFile "dreamotion3d.pbi"
Enumeration
EndEnumeration
If InitSprite () = 0 Or InitKeyboard () = 0 Or InitMouse () = 0
End
EndIf
SetCurrentDirectory ( "media/" )
DM_Graphics3D(1024,768, 32, #False , #False ) ; Initialize graphic windows
*Camera = DM_CreateCamera( #Null ) ; on cree une camera
; **************** bouger la camera ********************
;- bouger camera
posx=0 ; droite gauche ; pour le terrain
posy=550 ;monte/descends ; pour le terrain
poz=-20 ; avance/recule ; pour le terrain
DM_MoveEntity(*Camera, posx,posy,poz) ; on recule la camera
Rouge=25
Vert=125
Bleu=125
DM_CameraClsColor(*Camera, Rouge, Vert, Bleu) ; on choisi une couleur de fond
; near_distance.f=0
; far_distance.f=100000
; DM_CameraRange(*Camera, near_distance.f, far_distance.f); pres de la camera , loin de la camera
; **************************************************
;********* rotation de la camera **********************
;-rotation de camera
rotx.f=30 ; oui de la tete
roty.f=60 ; non de la tete
rotz.f=0 ; droite gauche pour un avion
DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; **************************************************
; on peut creer des objets
; ******** bouilloire *****************
;- creer une bouilloire
; *bouilloire=DM_CreateTeapot.l(#Null) ; on crée une bouilloire a the
; rotx=-30:roty=0:rotz=0
; DM_TurnEntity(*bouilloire, rotx,roty,rotz) ; on va tourner l'objet pour l'incliner de 30 degres
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; **********************************
; ******** Text 3d ******************
;-creer du text3D
; DM_CreateText3D.l("Comic Sans MS","DOBRO", 12, #Null) ; on peut creer du text
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; **********************************
; ****** Cylindre *******************
;-creer un cylindre
; *cylindre=DM_CreateCylinder.l(16, #Null); on peut creer un cylindre avec 16 cotés
; rotx=-90:roty=0:rotz=0
; DM_TurnEntity(*cylindre, rotx,roty,rotz) ; on va tourner l'objet pour le mettre debout
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; *********************************
; ****** Cone *******************
;-creer un cone
; *cone=DM_CreateCone.l(8, #Null) ; on peut creer un cylindre avec 8 cotés
; rotx=-90:roty=0:rotz=0
; DM_TurnEntity(*cone, rotx,roty,rotz) ; on va tourner l'objet pour le mettre debout
; scalex.f=0.50: scaley.f=0.25: scalez.f=0.5
; DM_ScaleEntity(*cone, scalex.f, scaley.f, scalez.f); on change l'echelle du cone
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; *********************************
; ****** Cube *******************
;- creer un Cube
; *cube=DM_CreateCube.l(#Null) ; on peut creer un Cube
; rotx=-45:roty=20:rotz=0
; DM_TurnEntity(*cube,rotx,roty,rotz) ; on va tourner l'objet
; scalex.f=2: scaley.f=2: scalez.f=2
; DM_ScaleEntity(*cube, scalex.f, scaley.f, scalez.f); on change l'echelle du cone
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; *********************************
; ****** Sphere *******************
;-Creer une sphere
; DM_CreateSphere.l(32,#Null) ; on peut creer une sphere avec 32 segments
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; *********************************
; ****** Tore *******************
;-creer un tore
; InnerRadius.f =1 ; taille interieur
; OuterRadius.f=5 ; taille exterieur
; Sides.l=8 ; nombre de segment pour le "pneu"
; Rings.l=6 ; nombre de segment pour la "roue"
; *tore=DM_CreateTorus.l(InnerRadius.f, OuterRadius.f, Sides.l, Rings.l, #Null) ; on peut creer un Tore
; rotx=45:roty=0:rotz=0
; DM_TurnEntity(*tore,rotx,roty,rotz) ; on va tourner l'objet
; rotx.f=0 ; oui de la tete
; roty.f=0; non de la tete
; rotz.f=0; droite gauche pour un avion
; DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
; *********************************
; ****** Terrain*******************
;-creer un terrain
*terrain=DM_CreateTerrain( "map.jpg" , 1) ; le terrain est crée d'apres une image en niveau de gris
; *********************************
; posx.f=0
; posy.f=50
; posz.f=0
; DM_PositionEntity(*terrain, posx.f, posy.f, posz.f)
; ****** Lumiere *****************
; cree une petite lumière, type POINT
;-creer une lumiere
light = DM_CreateLight(1, Null)
Red.w=255
Green.w=10
Blue.w=100
Alpha.w=2
DM_LightColor(light, Red.w, Green.w, Blue.w, Alpha.w) ; change la couleur de la lumiere
; *********************************
Repeat
ExamineKeyboard ()
ExamineMouse ()
ShowCursor_ (1)
If KeyboardReleased ( #PB_Key_Escape ) Or WindowEvent ()= #PB_Event_CloseWindow
Quit=1
ElseIf KeyboardPushed ( #PB_Key_Up )
poz=1
DM_MoveEntity(*Camera, 0,0,1) ; on recule/avance la camera
ElseIf KeyboardPushed ( #PB_Key_Down )
poz=-1
DM_MoveEntity(*Camera, 0,0,-1) ; on recule/avance la camera
ElseIf KeyboardPushed ( #PB_Key_Left )
;rotx.f=30 ; oui de la tete
roty.f= roty.f-0.1 ; non de la tete
;rotz.f=0; droite gauche pour un avion
DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
ElseIf KeyboardPushed ( #PB_Key_Right )
; rotx.f=30 ; oui de la tete
roty.f=roty.f+0.1 ; non de la tete
; rotz.f=0; droite gauche pour un avion
DM_RotateEntity(*Camera, rotx.f, roty.f, rotz.f)
EndIf
If MouseButton ( #PB_MouseButton_Left )
DM_TurnEntity(*Camera, MouseDeltaY ()/8, MouseDeltaX ()/8,0)
EndIf
; Render c'es ce qui permet de voir le resultat !
DM_BeginScene()
DM_RenderWorld()
DM_EndScene()
; *************************************
Until Quit=1
DM_ClearGraphics()
End