Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2013-12-31 21:10:24 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2013-12-31 21:10:24 (GMT)
commiteb4bbba85603bb3907a85f806557d041d8650a42 (patch)
tree9168020620c10a5308494f298f45f3acc0a49cdd
parentf4e00213fc6167e923f55124d4d20f3c980ad6cc (diff)
better pacman and ghosts scale system
-rwxr-xr-xgame.py39
-rw-r--r--ghost.py6
-rw-r--r--player.py11
3 files changed, 37 insertions, 19 deletions
diff --git a/game.py b/game.py
index 667c203..aab9d94 100755
--- a/game.py
+++ b/game.py
@@ -64,6 +64,7 @@ class PacmanGame:
# note what time it was when we first launched
self.game_start_time = time.time()
+ self.screen = screen
self.pause = 0
xoOwner = presenceService.get_owner()
@@ -84,11 +85,6 @@ class PacmanGame:
# keep list of player images
self.player_images = []
- self.player_images.append(pygame.image.load(player.dirName + "pacman-" + player.color + "-open-up.png"))
- self.player_images.append(pygame.image.load (player.dirName + "pacman-" + player.color + "-open-down.png"))
- self.player_images.append(pygame.image.load (player.dirName + "pacman-" + player.color + "-open-left.png"))
- self.player_images.append(pygame.image.load (player.dirName + "pacman-" + player.color + "-open-right.png"))
-
self.ghosts = []
redghost = Ghost ("red", seed, 19, 8)
whiteghost = Ghost ("white", 2*seed, 13, 8)
@@ -99,7 +95,6 @@ class PacmanGame:
self.ghosts.append (greenghost)
self.ghosts.append (orangeghost)
- self.screen = screen
canvas_size = screen.get_size()
self.aspectRatio = canvas_size[0] / float(canvas_size[1])
@@ -110,6 +105,29 @@ class PacmanGame:
pygame.font.init()
self.font = pygame.font.Font(None, 30)
+ # compute the size of the tiles given the screen size, etc.
+ size = self.screen.get_size()
+ self.tileSize = min(size[0] / self.maze.width, size[1] / self.maze.height)
+ self.bounds = pygame.Rect((size[0] - self.tileSize * self.maze.width)/2,
+ (size[1] - self.tileSize * self.maze.height)/2,
+ self.tileSize * self.maze.width,
+ self.tileSize * self.maze.height)
+ self.outline = int(self.tileSize)
+ player_size = (self.tileSize - 4, self.tileSize - 4)
+
+ imgs = ["up", "down", "left", "right"]
+ path = player.dirName + "pacman-" + player.color + "-open-%s.png"
+ for t in imgs:
+ img = pygame.image.load(path % t)
+ img_t = pygame.transform.scale(img, player_size)
+ self.player_images.append(img_t)
+
+ for p in self.localplayers:
+ p.update_images(player_size)
+
+ for g in self.ghosts:
+ g.update_images(player_size)
+
# support arrow keys, game pad arrows and game pad buttons
# each set maps to a local player index and a direction
self.arrowkeys = {
@@ -485,15 +503,6 @@ class PacmanGame:
if self.dirtyRect is None and len(self.dirtyPoints)==0:
return
- # compute the size of the tiles given the screen size, etc.
- size = self.screen.get_size()
- self.tileSize = min(size[0] / self.maze.width, size[1] / self.maze.height)
- self.bounds = pygame.Rect((size[0] - self.tileSize * self.maze.width)/2,
- (size[1] - self.tileSize * self.maze.height)/2,
- self.tileSize * self.maze.width,
- self.tileSize * self.maze.height)
- self.outline = int(self.tileSize)
-
def drawPoint(x,y):
rect = pygame.Rect(self.bounds.x + x*self.tileSize, self.bounds.y + y*self.tileSize, self.tileSize, self.tileSize)
tile = self.maze.map[x][y]
diff --git a/ghost.py b/ghost.py
index 752df3a..7e1d5ef 100644
--- a/ghost.py
+++ b/ghost.py
@@ -34,12 +34,16 @@ class Ghost:
self.sprites = sprite.RenderUpdates()
self.sprite = sprite.Sprite()
self.dirName = get_dir()
- self.sprite.image = pygame.image.load(self.dirName + "ghost_" + color + ".png")
+ self._path = self.dirName + "ghost_" + self.color + ".png"
self.sprites.add(self.sprite)
self.position = (x, y)
self.startposition = self.position
self.reset()
+ def update_images(self, size):
+ img = pygame.image.load(self._path)
+ self.sprite.image = pygame.transform.scale(img, size)
+
def draw(self, screen, bounds, size):
rect = pygame.Rect(bounds.x+self.position[0]*size, bounds.y+self.position[1]*size, size, size)
self.sprite.rect = rect
diff --git a/player.py b/player.py
index d0ae28e..7ee7d58 100644
--- a/player.py
+++ b/player.py
@@ -39,14 +39,19 @@ class Player:
self.dirName = get_dir()
self.open = sprite.Sprite()
self.closed = sprite.Sprite()
- self.open.image = pygame.image.load (self.dirName + "pacman-" + self.color + "-open-right.png")
- self.closed.image = pygame.image.load (self.dirName + "pacman-" + self.color + "-closed.png")
+ self._path = self.dirName + "pacman-" + self.color
self.opensprites.add(self.open)
- self.closedsprites.add (self.closed)
+ self.closedsprites.add(self.closed)
self.mouthClosed = 1
self.supertime = 0
self.reset()
+ def update_images(self, size):
+ img = pygame.image.load(self._path + "-open-right.png")
+ self.open.image = pygame.transform.scale(img, size)
+ img = pygame.image.load(self._path + "-closed.png")
+ self.closed.image = pygame.transform.scale(img, size)
+
def draw(self, screen, bounds, size):
rect = pygame.Rect(bounds.x+self.position[0]*size, bounds.y+self.position[1]*size, size, size)
#border = size / 10.