Exemple #1
0
 def getMBoard(self):
     self.mboard_text = []
     self.mboard_rect = pygame.Rect(440, 60, 120, 60)
     self.mboard_bgcolor = pygame.Color(50, 20, 0)
     return MessageBoard(self.screen,
                         rect=self.mboard_rect,
                         bgcolor=self.mboard_bgcolor,
                         border_width=4,
                         border_color=pygame.Color('black'),
                         text=self.mboard_text,
                         font=('verdana', 16),
                         font_color=pygame.Color('white'))
Exemple #2
0
 def getTboard(self, text):
     self.tboard_text = [text]
     self.tboard_rect = pygame.Rect(20, 20, self.field_outer_width, 30)
     self.tboard_bgcolor = pygame.Color(50, 20, 0)
     return MessageBoard(self.screen,
                         rect=self.tboard_rect,
                         bgcolor=self.tboard_bgcolor,
                         border_width=4,
                         border_color=black,
                         text=self.tboard_text,
                         font=('tahoma', 18),
                         font_color=yellow)
Exemple #3
0
 def getTboard(self):
     self.tboard_text = ['The amazing Creeps!']
     self.tboard_rect = pygame.Rect(20, 20, self.field_outer_width, 30)
     self.tboard_bgcolor = pygame.Color(50, 20, 0)
     return MessageBoard(self.screen,
                         rect=self.tboard_rect,
                         bgcolor=self.tboard_bgcolor,
                         border_width=4,
                         border_color=pygame.Color('black'),
                         text=self.tboard_text,
                         font=('tahoma', 18),
                         font_color=pygame.Color('yellow'))
Exemple #4
0
    def __init__(self):
        pygame.init()
        
        self.screen = pygame.display.set_mode(
                        (self.SCREEN_WIDTH, self.SCREEN_HEIGHT), 0, 32)
        self.tile_img = pygame.image.load(self.BG_TILE_IMG).convert_alpha()
        self.tile_img_rect = self.tile_img.get_rect()
        
        self.field_border_width = 4
        field_outer_width = self.FIELD_SIZE[0] + 2 * self.field_border_width
        field_outer_height = self.FIELD_SIZE[1] + 2 * self.field_border_width
        self.field_rect_outer = Rect(20, 60, field_outer_width, field_outer_height)
        self.field_bgcolor = Color(109, 41, 1, 100)
        self.field_border_color = Color(0, 0, 0)
        self.field_box = Box(self.screen, 
            rect=self.field_rect_outer, 
            bgcolor=self.field_bgcolor,
            border_width=self.field_border_width,
            border_color=self.field_border_color)
        
        self.tboard_text = ['The amazing Creeps!']
        self.tboard_rect = Rect(20, 20, field_outer_width, 30)
        self.tboard_bgcolor = Color(50, 20, 0)
        self.tboard = MessageBoard(self.screen,
            rect=self.tboard_rect,
            bgcolor=self.tboard_bgcolor,
            border_width=4,
            border_color=Color('black'),
            text=self.tboard_text,
            font=('tahoma', 18),
            font_color=Color('yellow'))
        
        self.mboard_text = []
        self.mboard_rect = Rect(440, 60, 120, 60)
        self.mboard_bgcolor = Color(50, 20, 0)
        self.mboard = MessageBoard(self.screen,
            rect=self.mboard_rect,
            bgcolor=self.mboard_bgcolor,
            border_width=4,
            border_color=Color('black'),
            text=self.mboard_text,
            font=('verdana', 16),
            font_color=Color('white'))
    
        self.clock = pygame.time.Clock()
        self.paused = False

        self.creep_images= [
            (   pygame.image.load(f1).convert_alpha(),
                pygame.image.load(f2).convert_alpha())
            for (f1, f2) in self.CREEP_FILENAMES]

        explosion_img = pygame.image.load('images/explosion1.png').convert_alpha()
        self.explosion_images = [
            explosion_img, pygame.transform.rotate(explosion_img, 90)]
        
        self.field_rect = self.get_field_rect()
        
        self.entrance_rect = Rect(
            self.field_rect.left,
            self.field_rect.top,
            self.GRID_SIZE * 2,
            self.GRID_SIZE * 2)
        
        self.exit_rect = Rect(
            self.field_rect.right - self.GRID_SIZE * 2,
            self.field_rect.bottom - self.GRID_SIZE * 2,
            self.GRID_SIZE * 2,
            self.GRID_SIZE * 2)
        
        # Create the creeps group and the first creep
        self.creeps = pygame.sprite.Group()
        self.spawn_new_creep()
        
        self.creep_spawn_timer = Timer(500, self.spawn_new_creep)
        
        self.create_walls()
        
        # Create the grid-path representation of the field
        #
        self.grid_nrows = self.FIELD_SIZE[1] / self.GRID_SIZE
        self.grid_ncols = self.FIELD_SIZE[0] / self.GRID_SIZE
        self.goal_coord = (self.grid_nrows - 1, self.grid_ncols - 1)
        self.gridpath = GridPath(
            nrows=self.grid_nrows,
            ncols=self.grid_ncols,
            goal=self.goal_coord)
        
        for wall in self.walls:
            self.gridpath.set_blocked(wall)
    
        self.options = dict(
            draw_grid=False)
Exemple #5
0
    def __init__(self):
        pygame.init()
        print "Pygame started."
        
        #set up screen and background
        self.screen = pygame.display.set_mode(
                        (self.SCREEN_WIDTH, self.SCREEN_HEIGHT), 0, 32)
        self.tile_img = pygame.image.load(self.BG_TILE_IMG).convert_alpha()
        self.tile_img_rect = self.tile_img.get_rect()
        
           #Drawing a handy MessageBoard widget
        #Can use these for any text.
        print "Configuring tboard MessageBoard params."
        self.tboard_text = ['This is a test.']
        self.tboard_x = 120
        self.tboard_y = 120
        self.tboard_width = 125
        self.tboard_height = 30
        self.tboard_rect = Rect(self.tboard_x, self.tboard_y, self.tboard_width, self.tboard_height)
        self.tboard_bgcolor = Color(50, 20, 0)
        self.tboard = MessageBoard(self.screen,
            rect=self.tboard_rect,
            bgcolor=self.tboard_bgcolor,
            border_width=4,
            border_color=Color('black'),
            text=self.tboard_text,
            padding=5,
            font=('comic sans', 18),
            font_color=Color('yellow'))
    
        print "Moving on to buttons..."        
    
        self.button_bgimgs = ['images/x.png']
        #self.button_width = self.button_bgimgs[0].get_width()
        #self.button_height = self.button_bgimgs[0].get_height()
        
        #hopefully this will draw the button -15 pixels from the right end, +15 from the top 
        #(hopefully giving us a nice X)
        # should be replaced in the future with a method that returns the coords for an x button
        # in whatever corner we want.
        #self.button_rect = Rect(self.tboard_width, self.tboard_y-15, self.button_width, self.button_height)
        self.button = Button(self.screen,
                                pos=vec2d(self.tboard_width, self.tboard_y-15),
                                btntype='Close',
                                imgnames=self.button_bgimgs,
                                attached=self.tboard)
        
        print "Created close button."
        
        #setting up our toggle button
        self.togglebtn_bgimgs = ['images/toggle1.png', 'images/toggle2.png']
        
        self.togglebtn = Button(self.screen,
                                pos=vec2d(250, 250),
                                btntype='Toggle',
                                imgnames=self.togglebtn_bgimgs,
                                attached="")
        
        print "Created toggle button."
        
        self.buttons = [self.button, self.togglebtn]                                
        
        self.clock = pygame.time.Clock()
        self.paused = False

        #spawning entities

        #Setting up gamefield
        #need a method for dynamically figuring out how many rows/columns we need based on
        #the spacing we want and field size. Using some constants for now.
        self.grid_nrows = 30
        self.grid_ncols = 30
        
        self.field_rect = Rect(0, 0, self.SCREEN_WIDTH, self.SCREEN_HEIGHT)       
        
        self.options = dict(debug=True, 
                draw_grid=False)
         
        print "Done setting game options, exiting Game init."