所以我有一个防止精灵离开屏幕的功能,就是:`
def move_extent(self, x, y):
if self.rect.right > 700:
self.rect.right = 700
elif self.rect.left < 0:
self.rect.left = 0
elif self.rect.y < 275:
self.rect.y = 275
elif self.rect.y > 275:
self.rect.y = 275`
它可以防止精灵越过x坐标系,大部分情况下是y坐标系。但是,如果精灵位于最左侧或最右侧(0或700 x),它仍然会向上或向下移动
以下是主要的游戏循环:
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
protag.moveLeft(3)
if keys[pygame.K_d]:
protag.moveRight(3)
if keys[pygame.K_w]:
protag.moveUp(3)
if keys[pygame.K_s]:
protag.moveDown(3)
all_sprites_list.update()
screen.blit(background, (0, 0))
all_sprites_list.draw(screen)
move_extent(protag, x_coord, y_coord)
pygame.display.flip()
clock.tick(60)
pygame.quit()
几乎:)将测试更改为:
目前,您先前的
if
已被使用,所有其他测试将不再进行测试您可以将其缩短为:
https://docs.python.org/3/library/functions.html#maxhttps://docs.python.org/3/library/functions.html#min
相关问题 更多 >
编程相关推荐