[ create a new paste ] login | about

Link: http://codepad.org/s1LV0qmi    [ raw code | output | fork ]

Jovito - Python, pasted on Sep 20:
import pygame
import sys
import Vec2D
import math
from constants import *
from pygame.locals import *
from objects import Text, Ball, Player, Enemy
            
class Game(object):
    
    def main(self):
        
        # initialize ball
        vector = Vec2D.Vec2D().from_magn_and_angle(BALL_SPEED, math.radians(0))
        self.ball = Ball(self, vector)
        # initialize enemy
        self.enemy = Enemy(self.ball)
        # initialize player
        self.player = Player(self.ball, PLAYER_SIDE)
        
        # initialize groups
        self.ballsprite = pygame.sprite.Group(self.ball)
        self.paddle_sprites = pygame.sprite.Group(self.enemy, self.player)
        
        # initialize background
        screen = pygame.display.get_surface()
        self.background = pygame.Surface(screen.get_size())
        self._draw_background()
        screen.blit(self.background, (0,0))
        
        # initialize text
        self.left_score = Text('', 32, WHITE, top = 10, right = SCREEN_WIDTH/2 - 20)
        self.right_score = Text('', 32, WHITE, top = 10, left = SCREEN_WIDTH/2 + 20)
        self.pause_text = Text('PAUSE', 64, RED,
                          centerx = SCREEN_WIDTH/2, centery = SCREEN_HEIGHT/2)
        
        # initialize music
        self.theme_music = pygame.mixer.music.load('theme.mp3')
        pygame.mixer.music.play(-1)
        
        # initialize clock
        clock = pygame.time.Clock()
        
        # pause flag
        paused = False
        while 1:
            dt = clock.tick(FPS) / 1000
            
            for event in pygame.event.get():
                if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
                    pygame.quit()
                    sys.exit()
                elif event.type == KEYUP:
                    if event.key == K_UP or event.key == K_DOWN:
                        self.player.movepos = [0, 0]
                        self.player.state = 'still'
                elif event.type == KEYDOWN:
                    if event.key == K_p:
                        if not paused:
                            pygame.mixer.music.pause()
                            pygame.time.delay(150)
                            paused = True
                        else:
                            pygame.mixer.music.unpause()
                            pygame.time.delay(150)
                            paused = False
            
            if not paused:            
                # erase sprites
                screen.blit(self.background, self.ball.rect, self.ball.rect)
                screen.blit(self.background, self.player.rect, self.player.rect)
                screen.blit(self.background, self.enemy.rect, self.enemy.rect)

                # erase scores
                screen.blit(self.background, self.left_score.rect, self.left_score.rect)
                screen.blit(self.background, self.right_score.rect, self.right_score.rect)
                
                # erase pause text
                screen.blit(self.background, self.pause_text.rect, self.pause_text.rect)
            
                # update sprites
                self.ballsprite.update(dt)
                self.paddle_sprites.update(dt)

                # update scores
                a, b = self.player.score, self.enemy.score
                if self.player.side != 'left':
                    a = self.enemy.score
                    b = self.player.score
                self.left_score.set_value(a)
                self.right_score.set_value(b)
            
                # draw sprites
                self.ballsprite.draw(screen)
                self.paddle_sprites.draw(screen)
            
                # draw scores
                screen.blit(self.left_score.image, self.left_score.rect)
                screen.blit(self.right_score.image, self.right_score.rect)
            
            else:
                screen.blit(self.pause_text.image, self.pause_text.rect)
                    
            # flip display
            pygame.display.flip()
            
    def increase_score(self, side):
        if self.player.side == side:
            self.enemy.score += 1
        else:
            self.player.score += 1
            
    def _draw_background(self):
        self.background.fill(BGCOLOR)
        
        # draw middle line
        pygame.draw.line(self.background, WHITE, 
                         (SCREEN_WIDTH/2, 0),
                         (SCREEN_WIDTH/2, SCREEN_HEIGHT), 2)
            
        leftcolor = BLUE
        rightcolor = RED
        if self.player.side != 'left':
            leftcolor = RED
            rightcolor = BLUE
            
        # draw left line
        pygame.draw.line(self.background, leftcolor,
                         (GAP, 0),
                         (GAP, SCREEN_HEIGHT), 2)
        
        # draw right line
        pygame.draw.line(self.background, rightcolor,
                         (SCREEN_WIDTH - GAP, 0),
                         (SCREEN_WIDTH - GAP, SCREEN_HEIGHT), 2)
        
if __name__ == '__main__':
    pygame.init()
    screen = pygame.display.set_mode(SCREEN_SIZE)
    pygame.display.set_caption('Pong!')
    pong = Game()
    pong.main()     


Output:
1
2
3
4
Traceback (most recent call last):
  Line 1, in <module>
    import pygame
ImportError: No module named pygame


Create a new paste based on this one


Comments: