Maybe offset the sun in the earths orbit
// Project: test15
// Created: 2018-12-15
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "test15" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
type point
x as float
y as float
z as float
endtype
earth = CreateObjectSphere(2, 8, 8)
sun = CreateObjectSphere(1, 8, 8)
SetObjectPosition(sun, 0, 10, 0)
FixObjectPivot(sun)
SetObjectPosition(earth, 0, -4, 0)
SetCameraPosition(1, 0, 0, 40)
SetCameraLookAt(1, 0, 0, 0, 0)
p as point
do
RotateObjectLocalz(sun , 1)
p = GetObjectDirectionVector(sun, 4, 1)
setsundirection(p.x, p.y, p.z)
Print( ScreenFPS() )
Sync()
loop
// GetObjectDirectionVector()
//
// Fills empty vector with a normalized direction vector.
//
// 1 = FWD, 2 = REV, 3 = UP, 4 = DOWN, 5 = RIGHT, 6 = LEFT
//
Function GetObjectDirectionVector( objID as integer, direction as integer, speed as float)
vector as point
tempObj as integer
tempObj = CreateObjectBox( 1.0, 1.0, 1.0 )
SetObjectPosition( tempObj, GetObjectWorldX( objID ), GetObjectWorldY( objID ), GetObjectWorldZ( objID ) )
SetObjectRotation( tempObj, GetobjectWorldAngleX( objID ), GetobjectWorldAngleY(objID), GetobjectWorldAngleZ( objID ) )
select direction
case 1 :
MoveObjectLocalZ( tempObj, speed )
endcase
case 2 :
MoveObjectLocalZ( tempObj, -speed)
endcase
case 3 :
MoveObjectLocalY( tempObj, speed )
endcase
case 4 :
MoveObjectLocalY( tempObj, -speed )
endcase
case 5 :
MoveObjectLocalX( tempObj, speed )
endcase
case 6 :
MoveObjectLocalX( tempObj, -speed )
endcase
endselect
vector.x = GetObjectWorldX( tempObj ) - GetObjectWorldX( objID )
vector.y = GetObjectWorldY( tempObj ) - GetObjectWorldY( objID )
vector.z = GetObjectWorldZ( tempObj ) - GetObjectWorldZ( objID )
DeleteObject(tempObj)
EndFunction vector