Ich kann mit der rechten Muastaste den Würfel ins Gelände setzen. und mit den Tasten "QWES" steuern.
Aber der Würfel geht nicht geschmeidig über das Gelände sondern geht sehr ruckelig den Berg rauf oder herab. Es fehlt die Glätte. Die Sprünge sind zu gross.
Gruss
Code: Alles auswählen
IncludePath "includes"
IncludeFile "n3xtD_PB.pbi"
Global anglex.f, angley.f, flagXDown.w
Global mox.f, omx.f, moy.l, omy.l
Global mov_x.f,mov_y.f,delta_xy.f
delta_xy=0.2
Global *app.l, Quit.l
*app = iCreateGraphics3D(800,600)
SetCurrentDirectory("media/")
Define *obj.IObject = iLoad3DObject("woodcrate.3ds")
Define *cube.IMesh = iCreateMesh(*obj)
iScaleNode(*cube, 0.125,0.125,0.125)
Global *terrain.ITerrain = iCreateTerrain("height113.bmp", 1.0, 8, 8, 1024)
iLoadTextureTerrain(*terrain, "sol113.jpg")
iMaterialTypeTerrain(*terrain, #EMT_LIGHTMAP )
Global *cam.ICamera = iCreateCamera( )
iPositionNode(*cam, 100,125,-60)
iTurnNode(*cam, 15,0,0)
Repeat
If iGetKeyDown(#KEY_ARROW_UP)
iMoveNode(*cam, 0,0,4)
EndIf
If iGetKeyDown(#KEY_ARROW_DOWN)
iMoveNode(*cam, 0,0,-4)
EndIf
If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
If flagXDown=0
omx = iGetMouseX()
omy = iGetMouseY()
flagXDown=11
Else
moy = iGetMouseY()-omy
angley=(moy/10.0)
omy= iGetMouseY()
mox = iGetMouseX()-omx
anglex=(mox/10.0)
omx= iGetMouseX()
iTurnNode(*cam, angley, anglex,0)
EndIf
Else
flagXDown=0
EndIf
If iGetMouseEvent(#MOUSE_BUTTON_RIGHT)
iPickTerrain(*terrain, iGetMouseX(), iGetMouseY(), 2000)
pos.VECTOR3
iTerrainPickedPosition(*terrain, @pos)
iPositionNode(*cube, pos\x, pos\y, pos\z)
mov_x=iGetMouseX()
mov_y=iGetMouseY()
EndIf
If GetAsyncKeyState_(#VK_E)
mov_x=mov_x+delta_xy
iPickTerrain(*terrain, mov_x,mov_y, 2000)
iTerrainPickedPosition(*terrain, @pos)
iPositionNode(*cube, pos\x, pos\y, pos\z)
EndIf
If GetAsyncKeyState_(#VK_Q)
mov_x=mov_x-delta_xy
iPickTerrain(*terrain, mov_x,mov_y, 2000)
iTerrainPickedPosition(*terrain, @pos)
iPositionNode(*cube, pos\x, pos\y, pos\z)
EndIf
If GetAsyncKeyState_(#VK_S)
mov_y=mov_y+delta_xy
iPickTerrain(*terrain, mov_x,mov_y, 2000)
iTerrainPickedPosition(*terrain, @pos)
iPositionNode(*cube, pos\x, pos\y, pos\z)
EndIf
If GetAsyncKeyState_(#VK_W)
mov_y=mov_y-delta_xy
iPickTerrain(*terrain, mov_x,mov_y, 2000)
iTerrainPickedPosition(*terrain, @pos)
iPositionNode(*cube, pos\x, pos\y, pos\z)
EndIf
If iGetKeyDown(#KEY_ESCAPE)
Quit=1
EndIf
iBeginScene(200,200,200)
iDrawScene()
iEndScene()
Until Quit=1
iFreeEngine()
; IDE Options = PureBasic 4.40 Beta 3 (Windows - x86)
; ExecutableFormat = Console
; CursorPosition = 13
; EnableXP
; DisableDebugger