diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2013-12-31 21:10:24 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2013-12-31 21:10:24 (GMT) |
commit | eb4bbba85603bb3907a85f806557d041d8650a42 (patch) | |
tree | 9168020620c10a5308494f298f45f3acc0a49cdd | |
parent | f4e00213fc6167e923f55124d4d20f3c980ad6cc (diff) |
better pacman and ghosts scale system
-rwxr-xr-x | game.py | 39 | ||||
-rw-r--r-- | ghost.py | 6 | ||||
-rw-r--r-- | player.py | 11 |
3 files changed, 37 insertions, 19 deletions
@@ -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] @@ -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 @@ -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. |