EntityWorld ( entity )
Parameters
| entity - any live 3D entity |
Description
|
Returns the handle of the world that owns an entity. Every entity belongs to exactly one live world: the world that was selected when it was created parentless, or its parent's world otherwise - a child is always in the same world as its parent. When your game juggles several worlds, this query keeps code honest: check which scene a picked or collided entity lives in, or select the right world before spawning something next to an entity you were handed. A typical helper looks like: SetWorld EntityWorld(target) ... spawn effects near target ... SetWorld back. Compare the result against your stored handles, or against GetWorld, to route logic per scene. Requires Extended mode. See also: GetWorld, SetWorld, CreateWorld, FindWorldEntity, WorldEntityID. |
Example
; 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
Index