Beispiel #1
0
class Game:

    def __init__(self):
        # Config
        # tps = ticks per second
        self.tps_max = 50.0
        self.screen_width = 800
        self.screen_height = 600

        # Initialization
        pygame.init()
        self.screen = pygame.display.set_mode((self.screen_width, self.screen_height))
        pygame.display.set_caption('Snake by Max')

        self.tps_clock = pygame.time.Clock()
        self.tps_delta = 0.0

        self.player = Player(3)
        self.apple = Apple(5,5)
        self.collision = Collision()

        while True:
            # Handle events
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit(0)
                elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                    sys.exit(0)

            # Ticking
            self.tps_delta += self.tps_clock.tick() / 1000.0
            while self.tps_delta > 1 / self.tps_max:
                self.tick()
                self.tps_delta -= 1 / self.tps_max

            # Drawing
            self.screen.fill((0, 0, 0))
            self.player.draw(self.screen)
            self.apple.draw(self.screen)
            pygame.display.flip()

    def tick(self):
        # Checking inputs
        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT]:
            self.player.moveLeft()
        elif keys[pygame.K_RIGHT]:
            self.player.moveRight()
        elif keys[pygame.K_UP]:
            self.player.moveUp()
        elif keys[pygame.K_DOWN]:
            self.player.moveDown()

        self.player.update()

        # does snake eat apple?
        for i in range(0, self.player.length):
            if self.collision.isCollision(self.apple.x, self.apple.y, self.player.x[i], self.player.y[i], 50):
                self.apple.x = randint(1, 14) * 50
                self.apple.y = randint(1, 10) * 50
                self.player.length = self.player.length + 1

        # does snake collide with itself?
        for i in range(2, self.player.length):
            if self.collision.isCollision(self.player.x[0], self.player.y[0], self.player.x[i], self.player.y[i], 40):
                print("You lose! Collision: ")
                print("x[0] (" + str(self.player.x[0]) + "," + str(self.player.y[0]) + ")")
                print("x[" + str(i) + "] (" + str(self.player.x[i]) + "," + str(self.player.y[i]) + ")")
                exit(0)