Changeset 340 for trunk/game/scripts/map.py
- Timestamp:
- 10/23/09 18:13:26 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/game/scripts/map.py
r323 r340 32 32 self.engine = engine 33 33 self.data = data 34 34 35 35 # init map attributes 36 self.my_cam_id = None 36 37 self.cameras = {} 37 38 self.agent_layer = None … … 49 50 @return: None""" 50 51 # We have to delete the map in Fife. 51 # TODO: We're killing the PC now, but later we will have to save the PC52 52 if self.map: 53 53 self.model.deleteObjects() … … 55 55 self.transitions = [] 56 56 self.map = None 57 self.agent_layer = None 57 self.agent_layer = None 58 58 # We have to clear the cameras in the view as well, or we can't reuse 59 59 # camera names like 'main' 60 self.view.clearCameras() 61 self.cameras = {} 62 self.cur_cam2_x = 0 60 #self.view.clearCameras() 63 61 self.initial_cam2_x = 0 64 62 self.cam2_scrolling_right = True 63 #self.cameras = {} 64 self.cur_cam2_x = 0 65 65 self.target_rotation = 0 66 66 self.outline_renderer = None … … 69 69 """Makes this map the active one. 70 70 """ 71 pass 71 self.cameras[self.my_cam_id].setEnabled(True) 72 72 73 73 74 def load(self, filename): 74 75 """Load a map given the filename. 75 @type filename: string76 @type filename: String 76 77 @param filename: Name of map to load 77 78 @return: None""" 78 79 self.reset() 79 80 self.map = loadMapFile(filename, self.engine, self.data) 80 81 # there must be a PC object on the objects layer!82 81 self.agent_layer = self.map.getLayer('ObjectLayer') 83 82 83 # if this is not the very first map load in the game carry over the PC instance 84 if self.data.target_position: 85 x = float(self.data.target_position[0]) 86 y = float(self.data.target_position[1]) 87 z = 0 88 pc_obj = self.model.getObject("player", "PARPG") 89 inst = self.agent_layer.createInstance(pc_obj,\ 90 fife.ExactModelCoordinate(x,y,z),\ 91 "PC") 92 inst.setRotation(self.data.game_state.PC.behaviour.agent.getRotation()) 93 fife.InstanceVisual.create(inst) 94 84 95 # it's possible there's no transition layer 85 96 size = len('TransitionLayer') … … 88 99 if(layer.getId()[:size] == 'TransitionLayer'): 89 100 self.transitions.append(self.map.getLayer(layer.getId())) 90 91 # init the camera 101 102 """ Initialize the camera. 103 Note that if we have more than one camera in a map file 104 we will have to rework how self.my_cam_id works. To make sure 105 the proper camera is set as the 'main' camera.""" 92 106 for cam in self.view.getCameras(): 93 self.cameras[cam.getId()] = cam 107 self.my_cam_id = cam.getId() 108 self.cameras[self.my_cam_id] = cam 94 109 self.view.resetRenderers() 95 self.target_rotation = self.cameras[ 'main'].getRotation()96 110 self.target_rotation = self.cameras[self.my_cam_id].getRotation() 111 97 112 self.outline_render = fife.InstanceRenderer.\ 98 getInstance(self.cameras[ 'main'])99 113 getInstance(self.cameras[self.my_cam_id]) 114 100 115 # set the render text 101 rend = fife.FloatingTextRenderer.getInstance(self.cameras[ 'main'])116 rend = fife.FloatingTextRenderer.getInstance(self.cameras[self.my_cam_id]) 102 117 text = self.engine.getGuiManager().\ 103 118 createFont('fonts/rpgfont.png', 0, \ … … 105 120 strip=False))) 106 121 rend.changeDefaultFont(text) 122 123 # Make World aware that this is now the active map. 124 self.data.view.active_map = self 107 125 108 def addPC(self , agent):126 def addPC(self): 109 127 """Add the player character to the map 110 @type agent: Fife.instance of PC111 128 @return: None""" 129 130 # Update gamestate.PC 131 self.data.game_state.PC.behaviour.onNewMap(self.agent_layer) 132 112 133 # actually this is real easy, we just have to 113 134 # attach the main camera to the PC, if a camera 114 135 # was already used, we simply recycle it. 115 if self.cameras[ 'main'].getAttached() == None:116 self.cameras[ 'main'].attach(agent)136 if self.cameras[self.my_cam_id].getAttached() == None: 137 self.cameras[self.my_cam_id].attach(self.data.game_state.PC.behaviour.agent) 117 138 118 139 … … 120 141 """Enable or disable a renderer. 121 142 @return: None""" 122 renderer = self.cameras[ 'main'].getRenderer(str(r_name))143 renderer = self.cameras[self.my_cam_id].getRenderer(str(r_name)) 123 144 renderer.setEnabled(not renderer.isEnabled()) 124 145
Note: See TracChangeset
for help on using the changeset viewer.