Changeset 191:e080fcd07fa9 for nagslang
- Timestamp:
- Sep 3, 2013, 7:47:24 PM (7 years ago)
- Branch:
- default
- Location:
- nagslang
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
nagslang/game_object.py
r188 r191 11 11 from nagslang.resources import resources 12 12 from nagslang.events import DoorEvent 13 from nagslang.widgets.text import TextWidget 13 14 14 15 … … 321 322 322 323 324 class Overlay(object): 325 def set_game_object(self, game_object): 326 self.game_object = game_object 327 328 def render(self, surface): 329 pass 330 331 def is_visible(self): 332 return self.game_object.puzzler.get_state() 333 334 335 class TextOverlay(Overlay): 336 def __init__(self, text): 337 self.text = text 338 self.widget = TextWidget((20, 20), self.text) 339 340 def render(self, surface): 341 self.widget.draw(surface) 342 343 323 344 class GameObject(object): 324 345 """A representation of a thing in the game world. … … 329 350 zorder = ZORDER_LOW 330 351 331 def __init__(self, physicser, renderer, puzzler=None ):352 def __init__(self, physicser, renderer, puzzler=None, overlay=None): 332 353 self.physicser = physicser 333 354 physicser.set_game_object(self) … … 338 359 if puzzler is not None: 339 360 puzzler.set_game_object(self) 361 self.overlay = overlay 362 if overlay is not None: 363 self.overlay.set_game_object(self) 340 364 341 365 def get_space(self): … … 381 405 }), 382 406 CollidePuzzler(*SWITCH_PUSHERS), 407 ) 408 409 410 class Note(GameObject): 411 zorder = ZORDER_FLOOR 412 413 def __init__(self, space, position, message): 414 body = make_body(None, None, position) 415 self.shape = pymunk.Circle(body, 30) 416 self.shape.sensor = True 417 super(Note, self).__init__( 418 SingleShapePhysicser(space, self.shape), 419 ImageRenderer(resources.get_image('objects', 'note.png')), 420 CollidePuzzler(), 421 TextOverlay(message), 383 422 ) 384 423 -
nagslang/level.py
r168 r191 30 30 self._exterior = False 31 31 self._glue = go.PuzzleGlue() 32 self._drawables = [] 32 self.drawables = [] 33 self.overlay_drawables = [] 33 34 self._game_objects = [] 34 35 self._enemies = [] … … 72 73 elif issubclass(cls, go.GameObject): 73 74 gobj = cls(space, *args) 74 self._drawables.append(gobj) 75 self.drawables.append(gobj) 76 if gobj.overlay: 77 self.overlay_drawables.append(gobj.overlay) 75 78 else: 76 79 raise TypeError( … … 84 87 if issubclass(cls, go.GameObject): 85 88 gobj = cls(space, *args) 86 self. _drawables.append(gobj)89 self.drawables.append(gobj) 87 90 else: 88 91 raise TypeError( … … 130 133 def get_walls(self): 131 134 return self.polygons.values() 132 133 def get_drawables(self):134 return self._drawables135 135 136 136 def _draw_walls(self): -
nagslang/screens/area.py
r190 r191 111 111 112 112 def add_game_objects(self): 113 for drawable in self._level. get_drawables():113 for drawable in self._level.drawables: 114 114 self._drawables.add(drawable) 115 115 … … 169 169 render_rect = self._calc_viewport(mysurface, surface) 170 170 surface.blit(mysurface, (0, 0), render_rect) 171 for overlay in self._level.overlay_drawables: 172 if overlay.is_visible(): 173 overlay.render(surface) 171 174 172 175 def tick_protagonist(self):
Note: See TracChangeset
for help on using the changeset viewer.