Exemplo n.º 1
0
    def __init__(self, screen, screen_width, screen_height,
                 fiel_rect, bg_color):
        
        self.SCREEN_WIDTH = screen_width
        self.SCREEN_HEIGHT = screen_height
        self.FIELD_RECT = Rect(0, 50, self.SCREEN_WIDTH,
                                self.SCREEN_HEIGHT - 50)
        self.BG_COLOR = bg_color
        
        self.screen = screen
        
        self.bat_image = pygame.image.load("images/bat.png").convert_alpha()
        self.ball_image = pygame.image.load("images/ball.png").convert_alpha()
        
        self.bat_l = Bat(self.screen, self.FIELD_RECT, self, self.bat_image, "left")
        self.bat_r = Bat(self.screen, self.FIELD_RECT, self, self.bat_image, "right")        
        
        self.score = (self.bat_l.lives, self.bat_r.lives)
        self.score_board = MsgBoard(self.screen, Rect(0, 0, self.SCREEN_WIDTH, 50),
                                      "{0} : {1}".format(*self.score),
                                      Color("green"),Color("black"),
                                       2, Color("green"))
        
        self.fps_board = MsgBoard(self.screen, Rect(0, 0, 150, 50), "0", Color("green"),
                       Color("black"), 2, Color("green"))

        self.new_ball()
        
        self.clock = pygame.time.Clock()
        
        self.paused = False
Exemplo n.º 2
0
 def win_check(self):
     if self.score[0] <= 0 or self.score[1] <= 0:
         win_text = "Left player win!"
         if self.score[0] <= 0:
             win_text = "Right player win!"
         
         win_msg = MsgBoard(self.screen, self.FIELD_RECT, win_text, 
                            Color("green"), Color("black"),
                            2, Color("green"))
         win_msg.draw()
         self.paused = True
Exemplo n.º 3
0
class Game(object):

    def __init__(self, screen, screen_width, screen_height,
                 fiel_rect, bg_color):
        
        self.SCREEN_WIDTH = screen_width
        self.SCREEN_HEIGHT = screen_height
        self.FIELD_RECT = Rect(0, 50, self.SCREEN_WIDTH,
                                self.SCREEN_HEIGHT - 50)
        self.BG_COLOR = bg_color
        
        self.screen = screen
        
        self.bat_image = pygame.image.load("images/bat.png").convert_alpha()
        self.ball_image = pygame.image.load("images/ball.png").convert_alpha()
        
        self.bat_l = Bat(self.screen, self.FIELD_RECT, self, self.bat_image, "left")
        self.bat_r = Bat(self.screen, self.FIELD_RECT, self, self.bat_image, "right")        
        
        self.score = (self.bat_l.lives, self.bat_r.lives)
        self.score_board = MsgBoard(self.screen, Rect(0, 0, self.SCREEN_WIDTH, 50),
                                      "{0} : {1}".format(*self.score),
                                      Color("green"),Color("black"),
                                       2, Color("green"))
        
        self.fps_board = MsgBoard(self.screen, Rect(0, 0, 150, 50), "0", Color("green"),
                       Color("black"), 2, Color("green"))

        self.new_ball()
        
        self.clock = pygame.time.Clock()
        
        self.paused = False
        
    def new_ball(self):
        self.ball = Ball(self.screen, self.FIELD_RECT, self,
                         self.ball_image, (100, 100),(5, 3) )
    
    def win_check(self):
        if self.score[0] <= 0 or self.score[1] <= 0:
            win_text = "Left player win!"
            if self.score[0] <= 0:
                win_text = "Right player win!"
            
            win_msg = MsgBoard(self.screen, self.FIELD_RECT, win_text, 
                               Color("green"), Color("black"),
                               2, Color("green"))
            win_msg.draw()
            self.paused = True
            
            
    
    def run(self):
        
        while True:
            time_passed = self.clock.tick(100)
            
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_UP:
                        self.bat_r.move_up()
                    elif event.key == pygame.K_DOWN:
                        self.bat_r.move_down()
                    elif event.key == pygame.K_w:
                        self.bat_l.move_up()
                    elif event.key == pygame.K_s:
                        self.bat_l.move_down()
                    elif event.key == pygame.K_SPACE:
                        self.paused = not self.paused
                    elif event.key == pygame.K_ESCAPE:
                        return 0
                elif event.type == pygame.KEYUP:
                    if (event.key == pygame.K_UP) or (event.key == pygame.K_DOWN):
                        self.bat_r.stop()
                    elif (event.key == pygame.K_w) or (event.key == pygame.K_s):
                        self.bat_l.stop()
            
            if not self.paused:
                
                # update
                self.bat_l.update()
                self.bat_r.update()
            
                self.ball.update(time_passed)
                
                self.score = (self.bat_l.lives, self.bat_r.lives)            
                self.score_board.update("{0} : {1}".format(*self.score))
                self.fps_board.update(str(int(self.clock.get_fps())))
            
                # draw
                self.screen.fill(self.BG_COLOR)
            
                self.score_board.draw()
                self.fps_board.draw()
            
                self.bat_l.draw()
                self.bat_r.draw()
            
                self.ball.draw()
                
                self.win_check()            
            
                pygame.display.flip()