关于覆盆子pi问题的pygame Sprite

时间:2015-02-03 21:00:04

标签: python pygame raspberry-pi sprite

我已经开始使用raspberry-pi B +,我正在关注this guide

特别是在pdf的第68页(本书的第52页)中,有一个使用Sprite的脚本。该脚本如下:

import pygame

class Ball(pygame.sprite.Sprite):
    def __init__(self, x, y, xdir, ydir, speed): 
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface([20, 20])
        self.image.fill(pygame.Color(255, 255, 255))          
        pygame.draw.circle(self.image,
             pygame.Color(255,0,0),
             (10,10), 10, 0)
        self.rect = self.image.get_rect()
        self.x, self.y = x, y
        self.xdir, self.ydir = xdir, ydir
        self.speed = speed

    def update(self):
        self.x = self.x + (self.xdir * self.speed)
        self.y = self.y + (self.ydir * self.speed)
        if (self.x < 10) | (self.x > 490):
            self.xdir = self.xdir * -1
        if (self.y < 10) | (self.y > 490):
            self.ydir = self.ydir * -1
        self.rect.center = (self.x, self.y)

pygame.init()
fps = pygame.time.Clock()
window = pygame.display.set_mode((500, 500))
ball = Ball(100, 250, 1, 1, 5)
ball2 = Ball(400, 10, -1, -1, 8)

while True: ball.update()
    ball2.update() 
    window.fill(pygame.Color(255,255, 255))
    window.blit(ball.image, ball.rect)
    window.blit(ball2.image, ball2.rect)
    pygame.display.update() fps.tick(30)

脚本编译但不起作用,窗口不起作用也不更新。

你知道吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

我不熟悉PyGame,但尝试分别用self.xself.y替换Ball类中的self.rect.xself.rect.y