Module MyScene
[hide private]
[frames] | no frames]

Source Code for Module MyScene

1 -class MY_SingleScene(object):
2 """ 3 singleton class of the used game scene to hold all the created objects 4 5 @ivar objectsActive: all objects that are active like player and the universe sphere 6 @type objectsActive: List 7 @ivar objectsPassive: all stairs and platforms in the game scene 8 @type objectsPassive: List 9 @ivar objectsCamera: all cameras in the game scene 10 @type objectsCamera: List 11 @ivar objectsLight: all the lights in the game scene 12 @type objectsLight: List 13 @ivar objectsActiveTemp: all objects that are temporary available in the game scene like items, hurdle, gauge 14 @type objectsActiveTemp: List 15 @ivar objectsMerch: all objects that are classified as xItem and were spawned into game scene 16 @type objectsMerch: List 17 @ivar scene: holds the blender game scene 18 @type scene: KX_Scene 19 """ 20 21 __instance = None # the unique instance 22
23 - def __new__(self, *args, **kargs):
24 if self.__instance is None: 25 self.__instance = object.__new__(self, *args, **kargs) 26 27 # __init__ section 28 self.objectsActive = [] 29 self.objectsPassive = [] 30 self.objectsCamera = [] 31 self.objectsLight = [] 32 self.objectsActiveTemp = [] 33 self.objectsMerch = [] 34 self.scene = 0 35 36 return self.__instance
37
38 - def __init__(self):
39 pass
40
41 - def addObject(self, my_object=None):
42 """ 43 adds a given object to his predefined list 44 45 @type my_object: MY_GameObject 46 @param my_object: the object that shall be added to the scene 47 """ 48 49 if my_object.type == "objectActive": 50 self.objectsActive.append(my_object) 51 elif my_object.type == "objectPassive": 52 self.objectsPassive.append(my_object) 53 elif my_object.type == "objectCamera": 54 self.objectsCamera.append(my_object) 55 elif my_object.type == "objectLight": 56 self.objectsLight.append(my_object) 57 elif my_object.type == "objectActiveTemp": 58 self.objectsActiveTemp.append(my_object) 59 elif my_object == None: 60 print "no object added"
61
62 - def removeObject(self, my_object=None):
63 """ 64 removes an object from his scene list 65 66 @type my_object: MY_GameObject 67 @param my_object: the object that shall be removed from the scene 68 """ 69 70 if my_object.type == "objectActive": 71 self.objectsActive.remove(my_object) 72 elif my_object.type == "objectPassive": 73 self.objectsPassive.remove(my_object) 74 elif my_object.type == "objectCamera": 75 self.objectsCamera.remove(my_object) 76 elif my_object.type == "objectLight": 77 self.objectsLight.remove(my_object) 78 elif my_object.type == "objectActiveTemp": 79 self.objectsActiveTemp.remove(my_object) 80 elif my_object == None: 81 print "no object deleted"
82
83 - def __getitem__(self, item):
84 """ 85 only for non passive elements, passive lements can be searched by id (.getMyPassiveObjectById()) 86 """ 87 88 for element in self.objectsActive: 89 if element.name == item: 90 return element 91 92 for element in self.objectsCamera: 93 if element.name == item: 94 return element 95 96 for element in self.objectsLight: 97 if element.name == item: 98 return element 99 100 for element in self.objectsActiveTemp: 101 if element.name == item: 102 return element
103
104 - def getMyPassiveObjectById(self, object_id):
105 """ 106 gets a passive object by it's given id, like platforms and stairs 107 108 @type object_id: Integer 109 @param object_id: the id of a passive object 110 111 @rtype: MY_GameObject 112 @return: returns the passive object that goes with the given id 113 """ 114 115 result = None 116 117 for index, element in enumerate(self.objectsPassive): 118 if element.elementId == object_id: 119 result = element 120 return result
121
122 - def getMyActiveTempObjectById(self, item_id):
123 """ 124 gets a temporary active object by it's given id, like items 125 126 @type item_id: Integer 127 @param item_id: the id of a temporary active object 128 129 @rtype: MY_GameObject 130 @return: returns the temporary active object that goes with the given id 131 """ 132 133 result = None 134 135 for index, element in enumerate(self.objectsActiveTemp): 136 if element.elementId == item_id: 137 result = element 138 139 return result
140
141 - def freeLists(self):
142 """ 143 free the lists and destroy all game objects (when game is over for example) 144 """ 145 146 temp_list = self.objectsActive[:] 147 for i in temp_list: 148 i.deleteObject() 149 temp_list = self.objectsPassive[:] 150 for i in temp_list: 151 i.deleteObject(True, False) 152 temp_list = self.objectsCamera[:] 153 for i in temp_list: 154 i.deleteObject() 155 temp_list = self.objectsLight[:] 156 for i in temp_list: 157 i.deleteObject() 158 temp_list = self.objectsActiveTemp[:] 159 for i in temp_list: 160 i.deleteObject() 161 while self.objectsMerch != []: 162 self.objectsMerch[0].deleteObject() 163 del temp_list 164 165 print self.objectsActive 166 print self.objectsPassive 167 print self.objectsCamera 168 print self.objectsLight 169 print self.objectsActiveTemp 170 print self.objectsMerch
171