; EntityWorld Example ; ------------------- ; Requires Extended mode. Graphics3D 640,480,0,2 SetBuffer BackBuffer() ; The default world holds the game scene: a red spinning cube game_world=GetWorld() game_camera=CreateCamera() PositionEntity game_camera,0,1,-5 game_light=CreateLight() RotateEntity game_light,45,45,0 cube=CreateCube() PositionEntity cube,0,1,0 EntityColor cube,255,80,80 ; A separate world holds the preview scene: a blue spinning sphere preview_world=CreateWorld() SetWorld preview_world preview_camera=CreateCamera() PositionEntity preview_camera,0,1,-5 preview_light=CreateLight() RotateEntity preview_light,45,45,0 sphere=CreateSphere() PositionEntity sphere,0,1,0 EntityColor sphere,80,140,255 ; Select the game world to start with SetWorld game_world active_camera=game_camera While Not KeyDown(1) ; Space selects the other world If KeyHit(57) If GetWorld()=game_world SetWorld preview_world active_camera=preview_camera Else SetWorld game_world active_camera=game_camera EndIf EndIf ; Both scenes keep animating, even the one not selected TurnEntity cube,0,1,0 TurnEntity sphere,0,1,0 ; Arrow keys move the selected world's camera If KeyDown(200) Then MoveEntity active_camera,0,0,0.1 If KeyDown(208) Then MoveEntity active_camera,0,0,-0.1 If KeyDown(203) Then TurnEntity active_camera,0,1,0 If KeyDown(205) Then TurnEntity active_camera,0,-1,0 RenderWorld ; EntityWorld reports the owner world of each entity - ownership ; is fixed at creation and does not follow the selected world Text 0,0,"Space: select the other world Arrow keys: move camera Esc: exit" Text 0,20,"EntityWorld(cube) = "+EntityWorld(cube)+" EntityWorld(sphere) = "+EntityWorld(sphere) Text 0,40,"GetWorld() = "+GetWorld() Flip Wend FreeWorld preview_world End