1
基本上我试图给我正在制作的一个小游戏添加一些边界,我有一个只能从左到右移动的精灵,我试图阻止它离开游戏窗口,如果精灵到达边缘,他们可以不再进一步,然后可以朝相反的方向前进。 我当前的代码:pygame中的窗口边界
tankSprite = pygame.image.load('Sprites/Tank.png') #fixed apostrophe
tankSprite_width = 28
def tank(x,y):
gameWindow.blit(tankSprite, (x,y))
def game_loop():
x = (display_width * 0.45)
y = (display_height * 0.8)
x_change = 0
gameExit = False
gameMove = True
while not gameExit and gameMove == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = False
if event.type ==pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5
if event.key == pygame.K_RIGHT:
x_change = 5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFTor event.key == pygame.K_RIGHT:
x_change = 0
x += x_change
gameWindow.fill(white)
tank(x,y)
if x > display_width - tankSprite_width or x < 0:
gameMove = False
elif x < display_width - tankSprite_width or x > 0:
gameMove = True
pygame.display.update()
clock.tick(60)
game_loop()
pygame.quit()
quit()
我当前的代码部分的工作原理,当精灵到达的解决方案自行关闭,而不是让我回去的边缘。如果我删除:
pygame.quit()
quit()
然后,精灵停止,我不能移回去。在一个项目中,我做了一段时间后我用类似:
if event.key == pygame.K_LEFT and sprite.x < 590:
sprite.x += 5
上面的代码从行之有效我还记得,但我似乎现在不能弄明白我的项目,任何人都可以帮助我请? 我希望让精灵不能越过屏幕边界,当玩家到达边界时,他们要么停留在相反的方向,要么往回走。谢谢
p.s.很抱歉的狡猾格式
感谢您的建议!我试过了,它可以防止精灵移动过游戏边界,这是唯一的问题,但是一旦精灵到达边界,它就不能再移回去,所以例如如果我将它移动到左边框,我可以然后使用右箭头键返回。你知道这可能是为什么吗? – BluTac
@HarryGray啊,是的,这是因为我的代码在精灵到达边界时会阻止所有移动,让我修复它,以防止移动到边界。 – River
我添加了更改,它的工作原理是让精灵不能越过边界,但仍然可以朝相反的方向前进。唯一的问题是,现在你必须捣碎箭头键来移动精灵,你不能把它们压住,你会介意建议克服这个问题吗?感谢你目前的帮助! – BluTac