Code: Select all
;// Project Title: MP 3D Engine Beispielprogramme
;// Dateiname: MP_GearsTest.pb
;// Erstellt am: 30.8.2013
;// Update am :
;// Author: Michael Paulwitz
;//
;// Info:
;// Gear Test
;// Zahnrad Test
;//
;//
;////////////////////////////////////////////////////////////////
MP_Graphics3D (640,480,0,1)
SetWindowTitle(0, "MP3D Physik Gear Demo")
camera = MP_CreateCamera() ; Kamera erstellen
MP_PositionCamera(camera, 0, 5, -5 )
MP_CameraLookAt(camera,0,0,0)
light= MP_CreateLight(0) ; Es werde Licht
Mesh = MP_CreateRectangle (2,0.05,0.5)
Mesh2 = MP_CreateRectangle (2,0.05,0.5)
MP_RotateEntity(Mesh2 , 0 , 0, 60, 1) : MP_ChangeMeshCoord(Mesh2)
MP_AddMesh(Mesh2 , Mesh ) : MP_FreeEntity(Mesh2)
Mesh2 = MP_CreateRectangle (2,0.05,0.5)
MP_RotateEntity(Mesh2 , 0 , 0, 120, 1) : MP_ChangeMeshCoord(Mesh2)
MP_AddMesh(Mesh2 , Mesh ) : MP_FreeEntity(Mesh2)
Mesh2 = MP_CopyEntity(Mesh)
;Mesh2 = MP_CopyEntity(Mesh)
Mesh7 = MP_CreateRectangle (0.05,4,0.05)
MP_RotateEntity(Mesh7 , 90 , 0, 0, 1) : MP_ChangeMeshCoord(Mesh7)
MP_AddMesh(Mesh7 , Mesh2 ) :MP_FreeEntity(Mesh7)
teapot = MP_CreateTeapot()
MP_ResizeMesh(teapot,0.5,0.5,0.5)
MP_PositionEntity (teapot,0,0,-2)
MP_RotateEntity(teapot , -90 , 0, 0, 1) : MP_ChangeMeshCoord(teapot)
MP_AddMesh(teapot , Mesh2 ) :MP_FreeEntity(teapot)
MP_EntitySetNormals (Mesh)
MP_MaterialDiffuseColor (Mesh,255,255,128,50)
MP_MaterialSpecularColor (Mesh, 255, 255 ,255, 155,5)
MP_EntitySetNormals (Mesh2)
MP_MaterialDiffuseColor (Mesh2,255,255,128,50)
MP_MaterialSpecularColor (Mesh2, 255, 255 ,255, 155,5)
MP_PositionEntity (Mesh,-1.7,0,0)
MP_PositionEntity (Mesh2,0,0,0)
MP_RotateEntity(Mesh, 90, 0, 0 )
MP_RotateEntity(Mesh2, 90, 0, 0 )
MP_PhysicInit()
MP_EntityPhysicBody(Mesh , 5, 10)
MP_ConstraintCreateHinge (Mesh,0,1,0)
MP_EntityPhysicBody(Mesh2, 5, 10)
MP_ConstraintCreateHinge (Mesh2,0,1,0)
MP_AmbientSetLight (RGB(0,100,200))
; those cubes are just place signs
Mesh4 = MP_CreateRectangle(0.2,0.2,0.2)
MP_PositionEntity (Mesh4,0,1.5,0)
Mesh5 = MP_CreateRectangle(0.2,0.2,0.2)
MP_PositionEntity (Mesh5,-1,1.5,0)
Mesh6 = MP_CreateRectangle(0.2,0.2,0.2)
MP_PositionEntity (Mesh6,-2,1.5,0)
While Not MP_KeyDown(#PB_Key_Escape) And Not WindowEvent() = #PB_Event_CloseWindow; Esc abfrage oder Windows Schliessen
;MP_TurnEntity(Mesh, 0, 0, 1 )
;MP_EntityAddImpulse(Mesh, 0, -0.03, 0 , -2.0,0, 0)
MP_EntityAddImpulse(Mesh, 0, 0, -0.01 , -1.5,0, 0)
MP_PhysicUpdate()
MP_RenderWorld() ; Erstelle die Welt
MP_Flip () ; Stelle Sie dar
Wend
MP_PhysicEnd()