KX_Scene(PyObjectPlus)

base class — PyObjectPlus

class bge.types.KX_Scene(PyObjectPlus)

An active scene that gives access to objects, cameras, lights and scene attributes.

The activity culling stuff is supposed to disable logic bricks when their owner gets too far from the active camera. It was taken from some code lurking at the back of KX_Scene - who knows what it does!

from bge import logic

# get the scene
scene = logic.getCurrentScene()

# print all the objects in the scene
for object in scene.objects:
   print(object.name)

# get an object named 'Cube'
object = scene.objects["Cube"]

# get the first object in the scene.
object = scene.objects[0]
# Get the depth of an object in the camera view.
from bge import logic

object = logic.getCurrentController().owner
cam = logic.getCurrentScene().active_camera

# Depth is negative and decreasing further from the camera
depth = object.position[0]*cam.world_to_camera[2][0] + object.position[1]*cam.world_to_camera[2][1] + object.position[2]*cam.world_to_camera[2][2] + cam.world_to_camera[2][3]

@bug: All attributes are read only at the moment.

name

The scene’s name, (read-only).

Type:string
objects

A list of objects in the scene, (read-only).

Type:CListValue of KX_GameObject
objectsInactive

A list of objects on background layers (used for the addObject actuator), (read-only).

Type:CListValue of KX_GameObject
lights

A list of lights in the scene, (read-only).

Type:CListValue of KX_LightObject
cameras

A list of cameras in the scene, (read-only).

Type:CListValue of KX_Camera
active_camera

The current active camera.

Type:KX_Camera

Note

This can be set directly from python to avoid using the KX_SceneActuator.

world

The current active world, (read-only).

Type:KX_WorldInfo
suspended

True if the scene is suspended, (read-only).

Type:boolean
activity_culling

True if the scene is activity culling.

Type:boolean
activity_culling_radius

The distance outside which to do activity culling. Measured in manhattan distance.

Type:float
dbvt_culling

True when Dynamic Bounding box Volume Tree is set (read-only).

Type:boolean
pre_draw

A list of callables to be run before the render step.

Type:list
post_draw

A list of callables to be run after the render step.

Type:list
pre_draw_setup

A list of callables to be run before the drawing setup (i.e., before the model view and projection matrices are computed).

Type:list
gravity

The scene gravity using the world x, y and z axis.

Type:Vector((gx, gy, gz))
addObject(object, reference, time=0)

Adds an object to the scene like the Add Object Actuator would.

Parameters:
  • object (KX_GameObject or string) – The (name of the) object to add.
  • reference (KX_GameObject or string) – The (name of the) object which position, orientation, and scale to copy (optional), if the object to add is a light and there is not reference the light’s layer will be the same that the active layer in the blender scene.
  • time (integer) – The lifetime of the added object, in frames. A time of 0 means the object will last forever (optional).
Returns:

The newly added object.

Return type:

KX_GameObject

end()

Removes the scene from the game.

restart()

Restarts the scene.

replace(scene)

Replaces this scene with another one.

Parameters:scene (string) – The name of the scene to replace this scene with.
Returns:True if the scene exists and was scheduled for addition, False otherwise.
Return type:boolean
suspend()

Suspends this scene.

resume()

Resume this scene.

get(key, default=None)

Return the value matching key, or the default value if its not found. :return: The key value or a default.

drawObstacleSimulation()

Draw debug visualization of obstacle simulation.