; SetWorld 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. ; SetWorld makes it the target for parentless entity creation 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 - RenderWorld draws the selected one 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 Text 0,0,"Space: select the other world Arrow keys: move camera Esc: exit" If GetWorld()=game_world Then scene$="game world (red cube)" Else scene$="preview world (blue sphere)" Text 0,20,"SetWorld selected "+GetWorld()+" - the "+scene Flip Wend FreeWorld preview_world End