示例#1
0
文件: maze.py 项目: Andrcw/Pacman
    def __init__(self, screen, mazefile):
        self.screen = screen
        self.filename = mazefile

        # Load line image and get its rect and change the size to 20 x 20
        # self.image = pygame.image.load('images/square.png')
        # self.image = pygame.transform.scale(self.image, (20, 20))
        # self.rect = self.image.get_rect()
        # self.screen_rect = screen.get_rect()

        with open('maze.txt', 'r') as f:
            self.rows = f.readlines()

        # for bricks
        self.bricks = []
        self.brick = ImageRect(screen, "square", Maze.BRICK_SIZE, Maze.BRICK_SIZE)
        # self.brick_x = brick_y = Maze.BRICK_SIZE

        # for balls
        self.balls = []
        self.ball = ImageRect(screen, "ball", 10, 10)

        # for the line (gate)
        self.lines = []
        self.line = ImageRect(screen, "line", 10, 10)

        # for power pill
        self.pills = []
        self.pill = ImageRect(screen, "pill", 10, 10)

        self.build()
示例#2
0
 def build(self):
     self.count = 30
     self.bricks.empty()
     self.powerpills.empty()
     self.qpills.empty()
     self.shields.empty()
     sz = Maze.PIX_SIZE
     for nrow in range(len(self.rows)):
         row = self.rows[nrow]
         for ncol in range(len(row)):
             col = row[ncol]
             if col == 'X':
                 brick = ImageRect(self.screen, self.brickfile, sz, sz)
                 brick.rect = pygame.Rect(ncol * sz, nrow * sz, brick.rect.width, brick.rect.height)
                 self.bricks.add(brick)
             elif col == 'o':
                 shield = ImageRect(self.screen, self.shieldfile, sz, sz)
                 shield.rect = pygame.Rect(ncol * sz, nrow * sz, shield.rect.width, shield.rect.height)
                 self.shields.add(shield)
             elif col == 'P':
                 powerpill = ImageRect(self.screen, self.powerpill, int(0.5 * sz), int(0.5 * sz))
                 powerpill.rect = pygame.Rect(ncol * sz + powerpill.rect.width/2, nrow * sz +
                                              powerpill.rect.height/2, powerpill.rect.width, powerpill.rect.height)
                 self.powerpills.add(powerpill)
             elif col == 'Q':
                 qpill = ImageRect(self.screen, self.powerpill, int(2 * sz), int(2 * sz))
                 qpill.rect = pygame.Rect(ncol * sz - qpill.rect.width/4, nrow * sz - qpill.rect.height/4,
                                          qpill.rect.width, qpill.rect.height)
                 self.qpills.add(qpill)
示例#3
0
    def __init__(self, screen, mazefile, brickfile, dotfile, powerpill):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.bricks = []

        self.dots = []
        # self.dots = Group()

        self.pills = []
        sz = Maze.BRICK_SIZE
        sz1 = Maze.DOT_SIZE
        sz2 = Maze.PILL_SIZE

        self.brick = ImageRect(screen, brickfile, sz, sz)

        self.dot = ImageRect(screen, dotfile, sz1, sz1)
        # self.dots.add(ImageRect(screen, dotfile, sz1, sz1))

        self.nodes = []

        self.pill = ImageRect(screen, powerpill, sz2, sz2)
        self.deltax = self.deltay = Maze.BRICK_SIZE

        self.build()
示例#4
0
 def __init__(self, screen, x, y, direction, maze, p_type=P_TYPE_1):
     self.screen = screen
     self.maze = maze
     self.direction = direction
     self.p_type = p_type
     if p_type == Portal.P_TYPE_1:
         self.images = ImageRect('blue-portal-bg.png',
                                 sheet=True,
                                 pos_offsets=[(0, 0, 32, 32),
                                              (32, 0, 32, 32),
                                              (64, 0, 32, 32),
                                              (0, 32, 32, 32),
                                              (32, 32, 32, 32),
                                              (64, 32, 32, 32),
                                              (0, 64, 32, 32)],
                                 resize=(self.maze.block_size,
                                         self.maze.block_size),
                                 animation_delay=250)
         image, _ = self.images.get_image()
     else:
         self.images = ImageRect('orange-portal-bg.png',
                                 sheet=True,
                                 pos_offsets=[(0, 0, 32, 32),
                                              (32, 0, 32, 32),
                                              (64, 0, 32, 32),
                                              (0, 32, 32, 32),
                                              (32, 32, 32, 32),
                                              (64, 32, 32, 32),
                                              (0, 64, 32, 32)],
                                 resize=(self.maze.block_size,
                                         self.maze.block_size),
                                 animation_delay=250)
         image, _ = self.images.get_image()
     super().__init__(x, y, maze.block_size, maze.block_size, image)
示例#5
0
 def __init__(self,
              screen,
              sprite_sheet,
              sheet_offsets,
              pos=(0, 0),
              resize=None,
              detail=None,
              frame_delay=None,
              flip=False):
     super().__init__()
     self.screen = screen
     if not resize:
         resize = (self.screen.get_height() // 10,
                   self.screen.get_height() // 10)
     self.image_manager = ImageRect(sprite_sheet,
                                    sheet=True,
                                    pos_offsets=sheet_offsets,
                                    resize=resize,
                                    animation_delay=frame_delay)
     if flip:
         self.image_manager.flip()
     self.image, self.rect = self.image_manager.get_image()
     if detail:
         self.detail_piece = ImageRect(detail,
                                       sheet=True,
                                       pos_offsets=sheet_offsets,
                                       resize=resize).all_images()[0]
         if flip:
             self.image_manager.flip()
         self.image.blit(self.detail_piece, (0, 0))
     else:
         self.detail_piece = None
     self.rect.centerx, self.rect.centery = pos
示例#6
0
 def update(self, maze):
     time_test = pygame.time.get_ticks()
     if self.dead and not self.stop:
         if abs(self.last_frame - time_test) > 1000:
             self.last_frame = time_test
             self.death_index = (self.death_index + 1) % len(self.death_frames)
             self.image = self.death_frames[self.death_index]
             self.ghost = ImageRect(self.screen, self.image, self.SIZE * 2, self.SIZE * 2)
         self.go_home()
     if not self.dead and not self.stop and not self.power_pill:
         if abs(self.last_frame - time_test) > 1000:
             self.last_frame = time_test
             self.image_index = (self.image_index + 1) % len(self.images)
             self.image = self.images[self.image_index]
             self.ghost = ImageRect(self.screen, self.image, self.SIZE * 2, self.SIZE * 2)
         if not self.walk_channel.get_busy():
             self.walk_channel.play(self.walk)
         if self.ghost_type == 1:
             self.inky_route(maze, time_test)
         if self.ghost_type == 2:
             self.blinky_route(maze, time_test)
         if self.ghost_type == 3:
             self.clyde_route(maze, time_test)
         if self.ghost_type == 4:
             self.pinky_route(maze, time_test)
     if not self.dead and not self.stop and self.power_pill:
         if not self.run_channel.get_busy():
             self.run_channel.play(self.run)
         if not self.vuln_flag:
             self.vuln_flag = True
             self.image = self.blue_frames[0]
             self.ghost = ImageRect(self.screen, self.image, self.SIZE * 2, self.SIZE * 2)
         if abs(self.vulnerable_frame - time_test) > 5000:
             if abs(self.switch_frame - time_test) > self.flash:
                 self.flash -= 200
                 self.switch_frame = time_test
                 self.vulnerable_index = (self.vulnerable_index + 1) % len(self.blue_frames)
                 self.image = self.blue_frames[self.vulnerable_index]
                 self.ghost = ImageRect(self.screen, self.image, self.SIZE * 2, self.SIZE * 2)
                 self.counter += 1
             if self.counter == 6:
                 self.flash = 1000
                 self.power_pill = False
                 self.vuln_flag = False
                 self.vulnerable_index = 0
                 self.counter = 0
         if self.ghost_type == 1:
             self.inky_route(maze, time_test)
         if self.ghost_type == 2:
             self.blinky_route(maze, time_test)
         if self.ghost_type == 3:
             self.clyde_route(maze, time_test)
         if self.ghost_type == 4:
             self.pinky_route(maze, time_test)
     if self.stop:
         pass
示例#7
0
    def create_oranges(self, screen, sz):
        self.oranges[0].append(self.orange)
        self.orange = ImageRect(screen, 'orange/orange_down_2', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[0].append(self.orange)

        self.orange = ImageRect(screen, 'orange/orange_left_1', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[1].append(self.orange)
        self.orange = ImageRect(screen, 'orange/orange_left_2', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[1].append(self.orange)

        self.orange = ImageRect(screen, 'orange/orange_right_1', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[2].append(self.orange)
        self.orange = ImageRect(screen, 'orange/orange_right_2', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[2].append(self.orange)

        self.orange = ImageRect(screen, 'orange/orange_up_1', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[3].append(self.orange)
        self.orange = ImageRect(screen, 'orange/orange_up_2', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[3].append(self.orange)

        self.orange = ImageRect(screen, 'scared/scared_1', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[4].append(self.orange)
        self.orange = ImageRect(screen, 'scared/scared_2', int(sz * 5.1),
                                int(sz * 5.1))
        self.oranges[4].append(self.orange)
示例#8
0
    def create_reds(self, screen, sz):
        self.reds[0].append(self.red)
        self.red = ImageRect(screen, 'red/red_down_2', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[0].append(self.red)

        self.red = ImageRect(screen, 'red/red_left_1', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[1].append(self.red)
        self.red = ImageRect(screen, 'red/red_left_2', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[1].append(self.red)

        self.red = ImageRect(screen, 'red/red_right_1', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[2].append(self.red)
        self.red = ImageRect(screen, 'red/red_right_2', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[2].append(self.red)

        self.red = ImageRect(screen, 'red/red_up_1', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[3].append(self.red)
        self.red = ImageRect(screen, 'red/red_up_2', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[3].append(self.red)

        self.red = ImageRect(screen, 'scared/scared_1', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[4].append(self.red)
        self.red = ImageRect(screen, 'scared/scared_2', int(sz * 5.1),
                             int(sz * 5.1))
        self.reds[4].append(self.red)
示例#9
0
    def create_pinks(self, screen, sz):
        self.pinks[0].append(self.pink)
        self.pink = ImageRect(screen, 'pink/pink_down_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[0].append(self.pink)

        self.pink = ImageRect(screen, 'pink/pink_left_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[1].append(self.pink)
        self.pink = ImageRect(screen, 'pink/pink_left_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[1].append(self.pink)

        self.pink = ImageRect(screen, 'pink/pink_right_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[2].append(self.pink)
        self.pink = ImageRect(screen, 'pink/pink_right_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[2].append(self.pink)

        self.pink = ImageRect(screen, 'pink/pink_up_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[3].append(self.pink)
        self.pink = ImageRect(screen, 'pink/pink_up_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[3].append(self.pink)

        self.pink = ImageRect(screen, 'scared/scared_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[4].append(self.pink)
        self.pink = ImageRect(screen, 'scared/scared_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.pinks[4].append(self.pink)
示例#10
0
    def create_blues(self, screen, sz):
        self.blues[0].append(self.blue)
        self.blue = ImageRect(screen, 'blue/blue_down_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[0].append(self.blue)

        self.blue = ImageRect(screen, 'blue/blue_left_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[1].append(self.blue)
        self.blue = ImageRect(screen, 'blue/blue_left_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[1].append(self.blue)

        self.blue = ImageRect(screen, 'blue/blue_right_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[2].append(self.blue)
        self.blue = ImageRect(screen, 'blue/blue_right_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[2].append(self.blue)

        self.blue = ImageRect(screen, 'blue/blue_up_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[3].append(self.blue)
        self.blue = ImageRect(screen, 'blue/blue_up_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[3].append(self.blue)

        self.blue = ImageRect(screen, 'scared/scared_1', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[4].append(self.blue)
        self.blue = ImageRect(screen, 'scared/scared_2', int(sz * 5.1),
                              int(sz * 5.1))
        self.blues[4].append(self.blue)
示例#11
0
 def __init__(self, screen, num):
     super(Pipe, self).__init__()
     self.screen = screen
     self.type = "pipe"
     if num == 1:
         self.im_rect = ImageRect(screen, "media/images/pipe/pipe1", 64, 64)
     elif num == 2:
         self.im_rect = ImageRect(screen, "media/images/pipe/pipe2", 64, 96)
     elif num == 3:
         self.im_rect = ImageRect(screen, "media/images/pipe/pipe3", 64, 128)
     self.rect = self.im_rect.rect
示例#12
0
    def __init__(self, screen, mazefile, brickfile, pointfile):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.bricks = []
        self.points = []
        sz = Maze.BRICK_SIZE
        self.brick = ImageRect(screen, brickfile, sz, sz)
        self.point = ImageRect(screen, pointfile, sz, sz)
        self.deltax = self.deltay = Maze.BRICK_SIZE
        self.build()
示例#13
0
文件: pm.py 项目: Andrcw/Pacman
 def update(self, maze, screen):
     """Update position based on movement flags"""
     if gf.stop_ball(self, maze) is False and pygame.time.get_ticks(
     ) - self.timer >= self.tick_speed:
         self.timer = pygame.time.get_ticks()
         if self.move == "l":
             self.image.rect.x -= self.speed
             file = "p_left_" + str(math.floor(self.index))
         elif self.move == "r":
             self.image.rect.x += self.speed
             file = "p_right_" + str(math.floor(self.index))
         elif self.move == "d":
             self.image.rect.y += self.speed
             file = "p_down_" + str(math.floor(self.index))
         elif self.move == "u":
             self.image.rect.y -= self.speed
             file = "p_up_" + str(math.floor(self.index))
         else:
             file = "p_up_1"
         self.image = ImageRect(screen, file, PM.PAC_SIZE, PM.PAC_SIZE)
         self.image.rect = self.rect
         if self.index >= 4:
             self.index = 1
         else:
             self.index += .3
     """For testing"""
示例#14
0
 def loadimages(self, color):
     frames = []
     filename = 'portal_' + color
     for sz in range(Portal.NUM_FRAMES):
         size = int(5 * sz)
         frames.append(ImageRect(self.screen, filename, height=size, width=size))
     return frames
示例#15
0
 def __init__(self, screen):
     super(BreakBrick, self).__init__()
     self.screen = screen
     self.type = "breakable"
     self.im_rect = ImageRect(screen, "media/images/brick/platform", 32, 32)
     self.rect = self.im_rect.rect
     self.opened = False  # If Mario hits the bricks underside, this becomes true
示例#16
0
    def prep_player_lives(self):
        score_str = 'Lives Left: '
        self.text = self.font.render(score_str, True, self.WHITE, self.BLACK)
        self.rtext = self.text.get_rect()
        self.rtext.bottom = self.screen_rect.bottom - self.SIZE
        self.rtext.x = self.screen_rect.width / 2 - self.SIZE * 4

        self.images = ['pacman2']
        self.image = self.images[0]
        self.live = ImageRect(self.screen, self.image, self.SIZE * 2,
                              self.SIZE * 2)
        r = self.live.rect
        w, h = r.width, r.height
        self.lives_1.append(pygame.Rect(0, 0, w, h))
        self.lives_2.append(pygame.Rect(0, 0, w, h))
        self.lives_3.append(pygame.Rect(0, 0, w, h))
        for rect in self.lives_1:
            rect.x = self.screen_rect.width / 2 + self.SIZE * 3
            rect.y = self.screen_rect.bottom - self.SIZE * 2.5
        for rect in self.lives_2:
            rect.x = self.screen_rect.width / 2 + self.SIZE * 5
            rect.y = self.screen_rect.bottom - self.SIZE * 2.5
        for rect in self.lives_3:
            rect.x = self.screen_rect.width / 2 + self.SIZE * 7
            rect.y = self.screen_rect.bottom - self.SIZE * 2.5
示例#17
0
 def __init__(self, screen, row, col, maze):
     super(PacMan, self).__init__()
     self.screen = screen
     self.s_rect = screen.get_rect()
     self.im = ImageRect(screen, "pac_man_1", 18, 18)
     self.im.rect.centerx = col * 10 + 5
     self.im.rect.centery = row * 10 + 5
     self.maze = maze
     self.rect = self.im.rect
     self.moving_up = False
     self.moving_down = False
     self.moving_right = False
     self.moving_left = False
     self.speed = 10
     self.state = 1
     self.death_state = 1
     self.dir = ""
     self.speed_timer = pygame.time.get_ticks()
     self.row = row
     self.col = col
     self.walls = [
         'T', 'B', 'R', 'L', 'G', 'M', 'N', 'O', 'Y', 'Z', 'W', 'X', 'S'
     ]
     self.dead = False
     self.sound_timer = pygame.time.get_ticks()
     self.finished = False
示例#18
0
文件: pm.py 项目: Andrcw/Pacman
    def __init__(self, screen, maze):
        super(PM, self).__init__()
        self.screen = screen.get_rect()
        self.image = ImageRect(screen, "p_left_2", PM.PAC_SIZE, PM.PAC_SIZE)
        self.rect = self.image.rect
        self.rect.x = self.screen.centerx - 10
        self.rect.y = self.screen.centery + 110

        self.maze = maze

        # Setting movement flags - Pacman starts moving left as game starts
        self.direction = "l"
        self.move = "l"

        # Speed
        self.speed = 5
        self.tick_speed = 10
        self.timer = pygame.time.get_ticks()

        # Index for images
        self.index = 1
        self.dead_index = 1
        self.sound_index = 1

        # Set movement flags as false
        self.direction_l = False
        self.direction_r = False
        self.direction_u = False
        self.direction_d = False

        # For the scores
        self.lives = 3
        self.score = 0
示例#19
0
    def __init__(self, screen, mazefile):
        """Initialize pacman and set its starting position"""
        super(Blue, self).__init__()
        self.screen = screen

        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.sz = Blue.BLUE_SIZE
        self.blues = []
        for x in range(5):
            self.blues.append([])

        self.blue = ImageRect(screen, 'blue/blue_down_1', int(self.sz * 5.1),
                              int(self.sz * 5.1))
        self.create_blues(self.screen, self.sz)

        self.deltax = self.deltay = self.BRICK_SIZE
        self.starting_centerx = 0
        self.starting_centery = 0
        self.build()

        self.centerx = float(self.blue.rect.centerx)
        self.centery = float(self.blue.rect.centery)

        # Movement flag
        self.moving_right = False
        self.moving_left = False
        self.moving_up = False
        self.moving_down = False
        self.index = 0

        self.i = 0  # used for debug traversing image
        self.scared = False
示例#20
0
 def check_last_frame(self, time_test, images):
     if abs(self.last_frame - time_test) > 100:
         self.last_frame = time_test
         self.image_index = (self.image_index + 1) % len(images)
         self.image = images[self.image_index]
         self.player = ImageRect(self.screen, self.image, self.SIZE * 2,
                                 self.SIZE * 2)
示例#21
0
文件: ghost.py 项目: xjzpguob/PacMan
    def __init__(self, screen, mazefile, pink):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, "r") as f:
            self.rows = f.readlines()

        self.pinkGhosts = [
            'images/pinkGhost0.png', 'images/pinkGhost1.png',
            'images/pinkGhost2.png', 'images/pinkGhost3.png'
        ]
        self.pinks = []
        size = BlueGhost.P1_SIZE

        self.pink = ImageRect(screen, pink, size, size)

        r = self.pink.rect
        w, h = r.width, r.height
        #                           x, y , width, height
        self.pinks.append(pygame.Rect(525, 630, w, h))
        self.x_direction = -.5
        self.y_direction = -.5

        self.collide_x = False

        for rect in self.pinks:
            self.x = float(rect.x)
            self.y = float(rect.y)
示例#22
0
文件: ghost.py 项目: xjzpguob/PacMan
    def __init__(self, screen, mazefile, p1):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, "r") as f:
            self.rows = f.readlines()

        self.blueGhosts = [
            'images/BlueGhost0.png', 'images/BlueGhost1.png',
            'images/BlueGhost2.png', 'images/BlueGhost3.png'
        ]
        self.p1s = []
        size = BlueGhost.P1_SIZE

        self.curFrame = Timer(self.blueGhosts)
        self.p1 = ImageRect(screen, p1, size, size)
        r = self.p1.rect
        w, h = r.width, r.height

        #                           x, y , width, height
        self.p1s.append(pygame.Rect(150, 120, w, h))
        self.x_direction = .5
        self.y_direction = .5

        self.collide_x = False

        for rect in self.p1s:
            self.x = float(rect.x)
            self.y = float(rect.y)
示例#23
0
 def __init__(self, screen, num):
     super(StairBrick, self).__init__()
     self.screen = screen
     self.im_rect = ImageRect(screen,
                              "media/images/brick/stair_brick_" + str(num),
                              32, 32 * num)
     self.type = "stair_" + str(num)
     self.rect = self.im_rect.rect
示例#24
0
文件: maze.py 项目: mw3244/Pacman
    def __init__(self, screen, mazefile, brickfile, shieldfile, pacfile,
                 powerfile, tabletfile, clydefile, pinkyfile, inkyfile,
                 blinkyfile, stats):
        self.screen = screen
        self.filename = mazefile
        self.stats = stats
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.score_text = Text(self.screen, "SCORE:", 50, 50, 20, 20,
                               (255, 255, 255))
        self.lives_text = Text(self.screen, "LIVES:", 50, 50, 300, 20,
                               (255, 255, 255))

        self.shields = []
        self.bricks = []
        self.powerpills = []
        self.tablets = []
        self.life = [None] * 5
        self.sz = Maze.BRICK_SIZE
        self.tsz = Maze.TABLET_SIZE
        self.psz = Maze.PAC_SIZE
        self.brick = ImageRect(screen, brickfile, self.sz, self.sz)
        self.shield = ImageRect(screen, shieldfile, self.sz, self.sz)
        self.pacman = ImageRect(screen, pacfile, self.psz, self.psz)
        self.clyde = ImageRect(screen, clydefile, self.sz * 2, self.sz * 2)
        self.pinky = ImageRect(screen, pinkyfile, self.sz * 2, self.sz * 2)
        self.inky = ImageRect(screen, inkyfile, self.sz * 2, self.sz * 2)
        self.blinky = ImageRect(screen, blinkyfile, self.sz * 2, self.sz * 2)
        self.powerpill = ImageRect(screen, powerfile, self.sz, self.sz)
        self.tablet = ImageRect(screen, tabletfile, self.tsz, self.tsz)
        self.life_image = pygame.image.load('images/left_pac_1.png')

        self.deltax = self.deltay = Maze.BRICK_SIZE
        self.nodeDict = {}
        self.currentnodeDict = {}
        self.nodeXYDict = {}
        self.XYnodeDict = {}

        self.pacman_init_x = 0
        self.pacman_init_y = 0
        self.clyde_init_x = 0
        self.clyde_init_y = 0
        self.pinky_init_x = 0
        self.pinky_init_y = 0
        self.inky_init_x = 0
        self.inky_init_y = 0
        self.blinky_init_x = 0
        self.blinky_init_y = 0

        self.build()
示例#25
0
    def __init__(self, screen, mazefile, brickfile, portalfile, shieldfile,
                 powerfile, pointsfile, foodfile):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.bricks = []
        self.shields = []
        self.hportals = []
        self.vportals = []
        self.fruit = []
        self.points = []
        self.powerpills = []

        sz = Maze.BRICK_SIZE
        self.brick = ImageRect(screen, brickfile, sz, sz)
        self.shield = ImageRect(screen, shieldfile, sz, sz)
        self.cherry = ImageRect(screen, foodfile, 20, 20)
        self.point = ImageRect(screen, pointsfile, 20, 20)
        self.powerpill = ImageRect(screen, powerfile, 25, 25)
        self.vportal = ImageRect(screen, portalfile, 64, 32)
        self.hportal = ImageRect(screen, portalfile, 32, 64)

        self.deltax = self.deltay = Maze.BRICK_SIZE

        self.build()
示例#26
0
    def __init__(self, screen, mazefile, brickfile, blueportalfile,
                 orangeportalfile, shieldfile, pointfile, powerfile,
                 cherryfile):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

        self.bricks = []
        self.shields = []
        self.orangePortals = []
        self.bluePortals = []
        self.points = []
        self.powerPills = []
        self.cherries = []
        sz = Maze.BRICK_SIZE
        self.brick = ImageRect(screen, brickfile, sz, sz)
        self.shield = ImageRect(screen, shieldfile, sz, sz)
        # Q blue E Orange
        self.bluePortal = ImageRect(screen, blueportalfile, 5 * sz, 15 * sz)
        self.orangePortal = ImageRect(screen, orangeportalfile, 15 * sz,
                                      5 * sz)
        self.point = ImageRect(screen, pointfile, int(0.5 * sz), int(0.5 * sz))
        self.powerPill = ImageRect(screen, powerfile, int(sz), int(sz))
        self.cherry = ImageRect(screen, cherryfile, sz, sz)
        self.delatx = self.delaty = Maze.BRICK_SIZE

        self.build()
示例#27
0
    def __init__(self, screen):
        super(Cherry, self).__init__()
        self.screen = screen.get_rect()
        self.image = ImageRect(screen, "cherry", Cherry.CHERRY_SIZE, Cherry.CHERRY_SIZE)
        self.rect = self.image.rect

        # Starts the cherry at this location
        self.rect.x = 300
        self.rect.y = 390
示例#28
0
    def __init__(self, screen, mazefile, brickfile, portalfile, shieldfile, pointfile, dotfile, powerpillfile):
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, 'r') as f:
            self.rows = f.readlines()

            self.bricks = []
            self.dots = []
            self.powerpills = []
            self.barriers = []
            sz = Maze.BRICK_SIZE
            self.brick = ImageRect(screen, brickfile, sz, sz)
            self.dot = ImageRect(screen, dotfile, 3, 3)
            self.powerpill = ImageRect(screen, powerpillfile, 15, 15)
            self.barrier = ImageRect(screen, shieldfile, sz, sz)
            self.deltax = self.deltay = Maze.BRICK_SIZE

            self.build()
示例#29
0
    def __init__(self, settings, screen, mazefile, brickfile, portalfile,
                 shieldfile, pointfile):
        self.settings = settings
        self.screen = screen
        self.filename = mazefile
        with open(self.filename, "r") as f:
            self.rows = f.readlines()

        # self.node = 0
        # self.nodes = [{"x": 0, "y": 0}]

        self.ghost = 0
        self.ghost_location = [{
            "x": 0,
            "y": 0
        }, {
            "x": 0,
            "y": 0
        }, {
            "x": 0,
            "y": 0
        }, {
            "x": 0,
            "y": 0
        }]

        self.bricks = []
        self.dots = []
        self.pills = []
        self.shields = []
        self.hportals = []
        self.vportals = []

        sz = Maze.BRICK_SIZE
        self.brick = ImageRect(screen, brickfile, sz, sz)
        self.dot = ImageRect(screen, pointfile, sz, sz)
        self.pill = ImageRect(screen, pointfile, sz * 2, sz * 2)
        self.shield = ImageRect(screen, shieldfile, sz, sz)
        self.hportal = ImageRect(screen, portalfile, sz, sz)
        self.vportal = self.hportal
        self.vportal.image = pygame.transform.rotate(self.hportal.image, 90)
        self.deltax = self.deltay = Maze.BRICK_SIZE

        self.build()
示例#30
0
    def prep_lives(self):
        for x in range(self.stats.lives_left):
            temp = ImageRect(self.screen, "pac_man_right_1", 18, 18)
            life = Sprite()
            life.image = temp.image

            temp.rect.x = x * 18
            temp.rect.bottom = self.screen_rect.bottom - 1
            life.rect = temp.rect
            self.lives.add(life)