主程序:我pygame的精灵可我左右移动,但我不能让它停在屏幕的结束
player = Player("player.png",[10,650])
players = pygame.sprite.Group()
players.add(player)
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_RIGHT:
player.goright()
if event.key == K_LEFT:
player.goleft()
if event.type == KEYUP:
if event.key == K_RIGHT:
player.cangoright = False
if event.key == K_LEFT:
player.cangoleft = False
players.update()
players.draw(SCREEN)
pygame.display.update()
clock.tick(FPS)
相关精灵的功能:
def update(self):
if self.cangoright:
self.rect.left += self.speed
if self.cangoleft:
self.rect.left -= self.speed
def goright(self):
if self.rect.right <= 1024:
self.cangoright = True
else:
self.cangoright = False
def goleft(self):
if self.rect.left >= 0:
self.cangoleft = True
else:
self.cangoleft = False
问题在于“cangoright”和“cangoleft”标志似乎没有正常工作。当精灵超过了屏幕边缘(左边为0,右边为1024)时,标志应该设置为false,因此更新函数中的if应该返回false,但这不会发生。
可以'self.speed'永远是负面的?在这种情况下,即使'self.cangoright'为'False','self.rect.left'也会增加。 – Kevin 2012-08-09 19:44:55