SetCameraPosition(1, 0, 1000, 0)
SetCameraLookAt(1, 0, 0, 0, 0)
SetCameraRange(1, 100, 10000)
for z=-1000 to 1000 Step 120
for x=-1000 to 1000 Step 120
i=CreateObjectBox(100, 100, 100)
SetObjectPosition(i, x, 0, z)
SetObjectColor(i, Random(0, 255), Random(0, 255), Random(0, 255), 255)
next x
next z
Global zoom_speed : zoom_speed=20.5
Global pan_enable
Global pan_amount : pan_amount = 5.0
Global pan_start_x, pan_start_y as float
do
// zoom camera
if GetRawMouseWheelDelta()>0 then MoveCameraLocalZ(1, zoom_speed )
if GetRawMouseWheelDelta()<0 then MoveCameraLocalZ(1, -zoom_speed )
// pan camera
if GetRawMouseMiddlePressed()
pan_start_x=GetPointerX()
pan_start_y=GetPointerY()
pan_enable=1
endif
if GetRawMouseMiddleReleased()
pan_enable=0
endif
if GetRawMouseMiddleState()
if pan_enable
cx=GetPointerX()
cy=GetPointerY()
pan_amount=GetDistance(cx, cy, pan_start_x, pan_start_y)
if cx>pan_start_x // pan left
SetCameraPosition(1, GetCameraX(1)-pan_amount, GetCameraY(1), GetCameraZ(1))
elseif cx<pan_start_x // pan right
SetCameraPosition(1, GetCameraX(1)+pan_amount, GetCameraY(1), GetCameraZ(1))
endif
if cy>pan_start_y // pan down
SetCameraPosition(1, GetCameraX(1), GetCameraY(1), GetCameraZ(1)+pan_amount)
elseif cy<pan_start_y // pan up
SetCameraPosition(1, GetCameraX(1), GetCameraY(1), GetCameraZ(1)-pan_amount)
endif
pan_start_x=GetPointerX()
pan_start_y=GetPointerY()
endif
endif
print(pan_amount)
Print( ScreenFPS() )
Sync()
loop
Function GetDistance(x1#, y1#, x2#, y2#)
Distance# = sqrt((x1# - x2#)^2 + (y1# - y2#)^2)
Endfunction Distance#