2004-06-07 11:03:12 +00:00
|
|
|
# $Id$
|
|
|
|
# Documentation for KX_Scene.py
|
|
|
|
|
|
|
|
class KX_Scene:
|
|
|
|
"""
|
|
|
|
Scene.
|
|
|
|
|
|
|
|
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!
|
|
|
|
|
|
|
|
Example::
|
|
|
|
import GameLogic
|
|
|
|
|
|
|
|
# get the scene
|
|
|
|
scene = GameLogic.getCurrentScene()
|
|
|
|
|
|
|
|
# print all the objects in the scene
|
2009-04-20 15:06:46 +00:00
|
|
|
for obj in scene.objects:
|
|
|
|
print obj.name
|
2004-06-07 11:03:12 +00:00
|
|
|
|
|
|
|
# get an object named 'Cube'
|
2009-04-20 15:06:46 +00:00
|
|
|
obj = scene.objects["OBCube"]
|
2004-06-07 11:03:12 +00:00
|
|
|
|
|
|
|
# get the first object in the scene.
|
2009-04-20 15:06:46 +00:00
|
|
|
obj = scene.objects[0]
|
2004-06-07 11:03:12 +00:00
|
|
|
|
|
|
|
Example::
|
|
|
|
# Get the depth of an object in the camera view.
|
|
|
|
import GameLogic
|
|
|
|
|
|
|
|
obj = GameLogic.getCurrentController().getOwner()
|
|
|
|
cam = GameLogic.getCurrentScene().active_camera
|
|
|
|
|
|
|
|
# Depth is negative and decreasing further from the camera
|
|
|
|
depth = obj.position[0]*cam.world_to_camera[2][0] + obj.position[1]*cam.world_to_camera[2][1] + obj.position[2]*cam.world_to_camera[2][2] + cam.world_to_camera[2][3]
|
2004-06-26 09:15:41 +00:00
|
|
|
|
|
|
|
@bug: All attributes are read only at the moment.
|
2004-06-07 11:03:12 +00:00
|
|
|
|
|
|
|
@ivar name: The scene's name
|
|
|
|
@type name: string
|
2009-04-20 15:06:46 +00:00
|
|
|
@ivar objects: A list of objects in the scene.
|
|
|
|
@type objects: L{CListValue<CListValue.CListValue>} of L{KX_GameObject<KX_GameObject.KX_GameObject>}
|
2004-06-07 11:03:12 +00:00
|
|
|
@ivar active_camera: The current active camera
|
|
|
|
@type active_camera: L{KX_Camera}
|
|
|
|
@ivar suspended: True if the scene is suspended.
|
|
|
|
@type suspended: boolean
|
|
|
|
@ivar activity_culling: True if the scene is activity culling
|
|
|
|
@type activity_culling: boolean
|
|
|
|
@ivar activity_culling_radius: The distance outside which to do activity culling. Measured in manhattan distance.
|
|
|
|
@type activity_culling_radius: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getLightList():
|
|
|
|
"""
|
|
|
|
Returns the list of lights in the scene.
|
|
|
|
|
2009-04-20 15:06:46 +00:00
|
|
|
@rtype: list [L{KX_LightObject}]
|
2004-06-07 11:03:12 +00:00
|
|
|
"""
|
|
|
|
def getObjectList():
|
|
|
|
"""
|
|
|
|
Returns the list of objects in the scene.
|
|
|
|
|
|
|
|
@rtype: list [L{KX_GameObject}]
|
|
|
|
"""
|
|
|
|
def getName():
|
|
|
|
"""
|
|
|
|
Returns the name of the scene.
|
|
|
|
|
|
|
|
@rtype: string
|
|
|
|
"""
|
|
|
|
|
2009-04-20 15:06:46 +00:00
|
|
|
def addObject(object, other, time=0):
|
2009-02-28 21:00:27 +00:00
|
|
|
"""
|
|
|
|
Adds an object to the scene like the Add Object Actuator would, and returns the created object.
|
|
|
|
|
|
|
|
@param object: The object to add
|
|
|
|
@type object: L{KX_GameObject} or string
|
|
|
|
@param other: The object's center to use when adding the object
|
|
|
|
@type other: L{KX_GameObject} or string
|
|
|
|
@param time: The lifetime of the added object, in frames. A time of 0 means the object will last forever.
|
|
|
|
@type time: int
|
|
|
|
|
|
|
|
@rtype: L{KX_GameObject}
|
|
|
|
"""
|