changeset 380:c25530efea3b

Replace player position in game zone right after its move; fix shots offsets at boundaries.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 07 Sep 2012 12:54:38 +0200
parents e0e284fcb288
children f1649d6c6397
files pytouhou/game/game.py pytouhou/game/player.py
diffstat 2 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/pytouhou/game/game.py
+++ b/pytouhou/game/game.py
@@ -283,14 +283,6 @@ class Game(object):
 
         for player in self.players:
             player.update(keystate) #TODO: differentiate keystates (multiplayer mode)
-            if player.state.x < 8.:
-                player.state.x = 8.
-            if player.state.x > self.width - 8:
-                player.state.x = self.width - 8
-            if player.state.y < 16.:
-                player.state.y = 16.
-            if player.state.y > self.height - 16:
-                player.state.y = self.height -16
 
         #XXX: Why 78910? Is it really the right value?
         player.state.effective_score = min(player.state.effective_score + 78910,
--- a/pytouhou/game/player.py
+++ b/pytouhou/game/player.py
@@ -197,6 +197,15 @@ class Player(object):
             self.state.x += dx
             self.state.y += dy
 
+            if self.state.x < 8.:
+                self.state.x = 8.
+            if self.state.x > self._game.width - 8:
+                self.state.x = self._game.width - 8.
+            if self.state.y < 16.:
+                self.state.y = 16.
+            if self.state.y > self._game.height - 16:
+                self.state.y = self._game.height -16.
+
             if not self.state.focused and keystate & 4:
                 self.start_focusing()
             elif self.state.focused and not keystate & 4: