主程序:我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