我该如何改进? 循环?拉链?列举?好像可以缩短,但我不知道怎么缩短。你知道吗
if checkcollide(plrx,plry) == True:
if keys[pygame.K_w]:
plry += 2
if keys[pygame.K_a]:
plrx += 2
if keys[pygame.K_s]:
plry -= 2
if keys[pygame.K_d]:
plrx -= 2
if checkcollide(plrx,plry) == 'left':
if keys[pygame.K_w]:
plry += 2
if keys[pygame.K_s]:
plry -= 2
if keys[pygame.K_d]:
plrx -= 2
if checkcollide(plrx,plry) == 'right':
if keys[pygame.K_w]:
plry += 2
if keys[pygame.K_a]:
plrx += 2
if keys[pygame.K_s]:
plry -= 2
if checkcollide(plrx,plry) == 'up':
if keys[pygame.K_a]:
plrx += 2
if keys[pygame.K_s]:
plry -= 2
if keys[pygame.K_d]:
plrx -= 2
if checkcollide(plrx,plry) == 'down':
if keys[pygame.K_w]:
plry += 2
if keys[pygame.K_a]:
plrx += 2
if keys[pygame.K_d]:
plrx -= 2
如果有人能帮忙,我们将不胜感激。谢谢。你知道吗
切换
if
的顺序:我假设你的代码中有一个错误,而你真正想要的是不要让玩家朝着冲突的方向移动,而不是让你的代码出现多个问题(如缩进,你做
checkcollision(plrx, plry) == true
块以及其他块,而不是代替,并且你不允许多个冲突)。在这种情况下,您的代码可以替换为:这避免了重复调用碰撞检查代码,还允许排除多个方向。你知道吗
顺便说一句,大多数游戏代码的工作方式是移动玩家,然后重置他们的位置,或者限制他们的移动,如果在新位置发生碰撞,而不是你采用的检查和预防策略。你知道吗
相关问题 更多 >
编程相关推荐