Mercurial > fife-parpg
annotate demos/shooter/scripts/world.py @ 471:7a79dc2a0592
Adding the credits window (still needs to be written)
Hopefully fixed some memory leaks.
Moved the flashing code to the appropriate spot (in ShipBase).
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Thu, 15 Apr 2010 15:53:06 +0000 |
parents | 5994e61cdebd |
children | 3164715a0621 |
rev | line source |
---|---|
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
2 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
3 # #################################################################### |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
4 # Copyright (C) 2005-2009 by the FIFE team |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
5 # http://www.fifengine.de |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
6 # This file is part of FIFE. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
7 # |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
8 # FIFE is free software; you can redistribute it and/or |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
9 # modify it under the terms of the GNU Lesser General Public |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
10 # License as published by the Free Software Foundation; either |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
11 # version 2.1 of the License, or (at your option) any later version. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
12 # |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
13 # This library is distributed in the hope that it will be useful, |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
16 # Lesser General Public License for more details. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
17 # |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
18 # You should have received a copy of the GNU Lesser General Public |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
19 # License along with this library; if not, write to the |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
20 # Free Software Foundation, Inc., |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
21 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
22 # #################################################################### |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
23 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
24 from fife import fife |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
25 import copy |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
26 import math, random |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
27 from fife.extensions import pychan |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
28 from fife.extensions.pychan import widgets |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
29 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
30 from scripts.common.eventlistenerbase import EventListenerBase |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
31 from scripts.common.helpers import normalize |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
32 from fife.extensions.loaders import loadMapFile |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
33 |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
34 from scripts.gui.guis import * |
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
35 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
36 from scripts.ships.shipbase import Ship |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
37 from scripts.ships.player import Player |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
38 from scripts.scene import Scene |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
39 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
40 class World(EventListenerBase): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
41 """ |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
42 The world! |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
43 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
44 This class handles: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
45 setup of map view (cameras ...) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
46 loading the map |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
47 handles mouse/key events which aren't handled by the GUI. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
48 ( by inheriting from EventlistenerBase ) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
49 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
50 """ |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
51 def __init__(self, app, engine): |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
52 super(World, self).__init__(engine, regMouse=True, regKeys=True) |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
53 self._applictaion = app |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
54 self.engine = engine |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
55 self.timemanager = engine.getTimeManager() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
56 self.eventmanager = engine.getEventManager() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
57 self.model = engine.getModel() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
58 self.filename = '' |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
59 self.keystate = { 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'CTRL': False, 'SPACE': False, } |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
60 self.dynamic_widgets = {} |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
61 self.pump_ctr = 0 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
62 self.map = None |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
63 self.scene = None |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
64 self._paused = True |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
65 self._pausedtime = 0 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
66 self._starttime = 0 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
67 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
68 self._mainmenu = MainMenu(self) |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
69 self.showMainMenu() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
70 |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
71 self._hudwindow = HeadsUpDisplay(self) |
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
72 self._hudwindow.hide() |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
73 |
457
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
74 self._gameover = GameOverDisplay() |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
75 self._gameover.hide() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
76 |
464
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
77 self._highscores = HighScores(self) |
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
78 self._highscores.hide() |
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
79 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
80 self._winner = WinnerDisplay() |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
81 self._winner.hide() |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
82 |
471
7a79dc2a0592
Adding the credits window (still needs to be written)
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
469
diff
changeset
|
83 self._credits = CreditsDisplay(self) |
7a79dc2a0592
Adding the credits window (still needs to be written)
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
469
diff
changeset
|
84 self._credits.hide() |
7a79dc2a0592
Adding the credits window (still needs to be written)
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
469
diff
changeset
|
85 |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
86 self._genericrenderer = None |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
87 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
88 self._gamecomplete = False |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
89 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
90 def showMainMenu(self): |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
91 if self.scene: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
92 self._paused = True |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
93 cont = True |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
94 else: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
95 cont = False |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
96 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
97 self._mainmenu.show(cont) |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
98 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
99 def showCredits(self): |
471
7a79dc2a0592
Adding the credits window (still needs to be written)
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
469
diff
changeset
|
100 self._credits.show() |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
101 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
102 def showHighScores(self): |
464
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
103 self._highscores.show() |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
104 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
105 def quit(self): |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
106 self.reset() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
107 self._applictaion.requestQuit() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
108 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
109 def reset(self): |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
110 if self.map: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
111 self.model.deleteMap(self.map) |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
112 self.map = None |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
113 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
114 self.cameras = {} |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
115 |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
116 if self.scene: |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
117 self.scene.destroyScene() |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
118 self.scene = None |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
119 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
120 self._gamecomplete = False |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
121 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
122 def loadLevel(self, filename): |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
123 """ |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
124 Load a xml map and setup cameras. |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
125 """ |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
126 |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
127 self.resetKeys() |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
128 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
129 self.filename = filename |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
130 self.reset() |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
131 self.map = loadMapFile(self.filename, self.engine) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
132 |
457
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
133 self.scene = Scene(self, self.engine, self.map.getLayer('objects')) |
448
5e2ec84902a7
Did a little re-factoring.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
446
diff
changeset
|
134 self.scene.initScene(self.map) |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
135 |
454
bd7e8f708adf
Time is now managed by the Scene object.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
453
diff
changeset
|
136 self.initCameras() |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
137 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
138 self._hudwindow.show() |
457
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
139 self._gameover.hide() |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
140 self._winner.hide() |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
141 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
142 self._starttime = self.timemanager.getTime() |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
143 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
144 self._genericrenderer = fife.GenericRenderer.getInstance(self.cameras['main']) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
145 self._genericrenderer.clearActiveLayers() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
146 self._genericrenderer.addActiveLayer(self.map.getLayer('objects')) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
147 self._genericrenderer.setEnabled(True) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
148 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
149 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
150 def renderBoundingBox(self, obj): |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
151 bbox = copy.copy(obj.boundingbox) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
152 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
153 #apply the object layer scale |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
154 bbox.x /= 0.25 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
155 bbox.y /= 0.25 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
156 bbox.w /= 0.25 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
157 bbox.h /= 0.25 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
158 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
159 obj_topleft = fife.ExactModelCoordinate(bbox.x, bbox.y) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
160 obj_topright = fife.ExactModelCoordinate(bbox.x + bbox.w, bbox.y) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
161 obj_bottomright = fife.ExactModelCoordinate(bbox.x + bbox.w, bbox.y + bbox.h) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
162 obj_bottomleft = fife.ExactModelCoordinate(bbox.x, bbox.y + bbox.h) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
163 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
164 loc_topleft = fife.Location() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
165 loc_topleft.setLayer(self.map.getLayer('boundingbox')) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
166 loc_topleft.setExactLayerCoordinates(obj_topleft) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
167 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
168 loc_topright = fife.Location() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
169 loc_topright.setLayer(self.map.getLayer('boundingbox')) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
170 loc_topright.setExactLayerCoordinates(obj_topright) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
171 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
172 loc_bottomright = fife.Location() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
173 loc_bottomright.setLayer(self.map.getLayer('boundingbox')) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
174 loc_bottomright.setExactLayerCoordinates(obj_bottomright) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
175 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
176 loc_bottomleft = fife.Location() |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
177 loc_bottomleft.setLayer(self.map.getLayer('boundingbox')) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
178 loc_bottomleft.setExactLayerCoordinates(obj_bottomleft) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
179 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
180 node_topleft = fife.GenericRendererNode(loc_topleft) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
181 node_topright = fife.GenericRendererNode(loc_topright) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
182 node_bottomright = fife.GenericRendererNode(loc_bottomright) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
183 node_bottomleft = fife.GenericRendererNode(loc_bottomleft) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
184 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
185 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
186 self._genericrenderer.addLine("quads", node_topleft, node_topright, 255, 255, 255) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
187 self._genericrenderer.addLine("quads", node_topright, node_bottomright, 255, 255, 255) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
188 self._genericrenderer.addLine("quads", node_bottomright, node_bottomleft, 255, 255, 255) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
189 self._genericrenderer.addLine("quads", node_bottomleft, node_topleft, 255, 255, 255) |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
190 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
191 #had to do this or it would segfault |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
192 obj_topleft.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
193 obj_topright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
194 obj_bottomright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
195 obj_bottomleft.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
196 loc_topleft.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
197 loc_topright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
198 loc_bottomright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
199 loc_bottomleft.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
200 node_topleft.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
201 node_topright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
202 node_bottomright.thisown = 0 |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
203 node_bottomleft.thisown = 0 |
457
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
204 |
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
205 def gameOver(self): |
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
206 self._gameover.show() |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
207 self._hudwindow.hide() |
464
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
208 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
209 self.saveScore() |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
210 |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
211 def endLevel(self): |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
212 self._paused = True |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
213 |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
214 #only one level so the game is over once you complete it. |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
215 self._gamecomplete = True |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
216 self._winner.show() |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
217 self._hudwindow.hide() |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
218 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
219 def saveScore(self): |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
220 self._gamecomplete = False |
468
ebbb420a90b9
Fix the bug where the high score dialog box causes a crash after the player completes the level.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
467
diff
changeset
|
221 |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
222 if self._highscores.isHighScore(self.scene.player.score): |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
223 score = self.scene.player.score |
464
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
224 |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
225 dlg = pychan.loadXML('gui/highscoredialog.xml') |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
226 dlg.execute({ 'okay' : "Yay!" }) |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
227 name = dlg.findChild(name='name').text |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
228 |
468
ebbb420a90b9
Fix the bug where the high score dialog box causes a crash after the player completes the level.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
467
diff
changeset
|
229 self._highscores.addHighScore(HighScore(name, score)) |
ebbb420a90b9
Fix the bug where the high score dialog box causes a crash after the player completes the level.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
467
diff
changeset
|
230 self._highscores.show() |
ebbb420a90b9
Fix the bug where the high score dialog box causes a crash after the player completes the level.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
467
diff
changeset
|
231 |
464
be035dff788a
Added high score window.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
462
diff
changeset
|
232 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
233 def newGame(self): |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
234 self.loadLevel("maps/shooter_map1.xml") |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
235 self._mainmenu.hide() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
236 self._paused = False |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
237 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
238 def continueGame(self): |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
239 self._mainmenu.hide() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
240 self._paused = False |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
241 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
242 def initCameras(self): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
243 """ |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
244 Before we can actually see something on screen we have to specify the render setup. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
245 This is done through Camera objects which offer a viewport on the map. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
246 """ |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
247 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
248 for cam in self.map.getCameras(): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
249 if cam.getId() == 'main': |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
250 self.cameras['main'] = cam |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
251 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
252 self.scene.attachCamera(self.cameras['main']) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
253 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
254 def resetKeys(self): |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
255 self.keystate['UP'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
256 self.keystate['DOWN'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
257 self.keystate['LEFT'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
258 self.keystate['RIGHT'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
259 self.keystate['SPACE'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
260 self.keystate['CTRL'] = False |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
261 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
262 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
263 def keyPressed(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
264 keyval = evt.getKey().getValue() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
265 keystr = evt.getKey().getAsString().lower() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
266 if keyval == fife.Key.UP: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
267 self.keystate['UP'] = True |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
268 elif keyval == fife.Key.DOWN: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
269 self.keystate['DOWN'] = True |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
270 elif keyval == fife.Key.LEFT: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
271 self.keystate['LEFT'] = True |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
272 elif keyval == fife.Key.RIGHT: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
273 self.keystate['RIGHT'] = True |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
274 elif keyval == fife.Key.SPACE: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
275 self.keystate['SPACE'] = True |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
276 elif keyval == fife.Key.P: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
277 self._paused = not self._paused |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
278 self._pausedtime += self.timemanager.getTime() |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
279 elif keyval in (fife.Key.LEFT_CONTROL, fife.Key.RIGHT_CONTROL): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
280 self.keystate['CTRL'] = True |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
281 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
282 def keyReleased(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
283 keyval = evt.getKey().getValue() |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
284 if keyval == fife.Key.UP: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
285 self.keystate['UP'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
286 elif keyval == fife.Key.DOWN: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
287 self.keystate['DOWN'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
288 elif keyval == fife.Key.LEFT: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
289 self.keystate['LEFT'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
290 elif keyval == fife.Key.RIGHT: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
291 self.keystate['RIGHT'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
292 elif keyval == fife.Key.SPACE: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
293 self.keystate['SPACE'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
294 elif keyval in (fife.Key.LEFT_CONTROL, fife.Key.RIGHT_CONTROL): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
295 self.keystate['CTRL'] = False |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
296 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
297 def mouseWheelMovedUp(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
298 if self.keystate['CTRL']: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
299 self.cameras['main'].setZoom(self.cameras['main'].getZoom() * 1.05) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
300 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
301 def mouseWheelMovedDown(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
302 if self.keystate['CTRL']: |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
303 self.cameras['main'].setZoom(self.cameras['main'].getZoom() / 1.05) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
304 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
305 def mousePressed(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
306 if evt.isConsumedByWidgets(): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
307 return |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
308 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
309 clickpoint = fife.ScreenPoint(evt.getX(), evt.getY()) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
310 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
311 def mouseMoved(self, evt): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
312 pt = fife.ScreenPoint(evt.getX(), evt.getY()) |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
313 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
314 def pump(self): |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
315 """ |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
316 Called every frame. |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
317 """ |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
318 |
469
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
319 if self._gamecomplete: |
5994e61cdebd
Added a widget to be displayed after the player completes the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
468
diff
changeset
|
320 self.saveScore() |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
321 self.reset() |
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
322 |
460
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
323 if self._genericrenderer: |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
324 self._genericrenderer.removeAll("quads") |
5e1d6e40d19d
Fixed bounding boxes.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
457
diff
changeset
|
325 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
326 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
327 if not self.scene: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
328 return |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
329 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
330 #update the scene |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
331 if not self._paused: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
332 if self.scene.paused: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
333 self.scene.unpause(self.timemanager.getTime() - self._starttime) |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
334 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
335 self.scene.update(self.timemanager.getTime() - self._starttime, self.keystate) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
336 |
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
337 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
338 #update the HUD |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
339 avgframe = self.timemanager.getAverageFrameTime() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
340 if avgframe > 0: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
341 fps = 1 / (avgframe / 1000) |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
342 else: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
343 fps = 0 |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
344 fpstxt = "%3.2f" % fps |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
345 self._hudwindow.setFPSText(unicode(fpstxt)) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
346 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
347 player = self.scene.player |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
348 exactcoords = player.location.getExactLayerCoordinates() |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
349 pos = "%1.2f" % exactcoords.x + ", %1.2f" % exactcoords.y |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
350 self._hudwindow.setPositionText(unicode(pos)) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
351 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
352 vel = "%1.2f" % player.velocity.x + ", %1.2f" % player.velocity.y |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
353 self._hudwindow.setVelocityText(unicode(vel)) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
354 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
355 score = unicode(str(player.score)) |
456
41fd97da94d1
Moved guis to their own file.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
455
diff
changeset
|
356 self._hudwindow.setScoreText(score) |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
357 |
462
c4f745a566d6
Added player ship animations including flash and explode.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
460
diff
changeset
|
358 ilives = player.lives |
c4f745a566d6
Added player ship animations including flash and explode.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
460
diff
changeset
|
359 if ilives < 0: |
c4f745a566d6
Added player ship animations including flash and explode.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
460
diff
changeset
|
360 ilives = 0 |
c4f745a566d6
Added player ship animations including flash and explode.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
460
diff
changeset
|
361 lives = unicode(str(ilives)) |
457
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
362 self._hudwindow.setLivesText(lives) |
597b066d5ccb
Player now has 3 lives and will receive a game over message once they are used up.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
456
diff
changeset
|
363 |
455
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
364 else: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
365 if not self.scene.paused: |
e686b82d93d0
Added the ability to pause the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
454
diff
changeset
|
366 self.scene.pause(self.timemanager.getTime() - self._starttime) |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
367 |
467
4d0aa75a82f1
Added damage so some enemies take more than one hit to destroy.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
465
diff
changeset
|
368 |
446
2046a1f2f5f2
Adding the shooter demo. This is still a work in progress.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
369 self.pump_ctr += 1 |