gpt4 book ai didi

python - 为什么 "rat"不能穿过TOP和BOTTOM墙,但可以穿过LEFT和RIGHT?

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:49 26 4
gpt4 key购买 nike

我正在开发一个 pygame ASCII roguelike,我在那里遇到了我的第一个“敌人”。这是一只老鼠,但我有一个问题,老鼠可以穿过左墙和右墙,但不能穿过上墙和下墙。

我什么都没试过,我的想法用完了

ratUP = pygame.Rect(enemypos.ratposx, enemypos.ratposy-16, 16, 16)
ratDOWN = pygame.Rect(enemypos.ratposx, enemypos.ratposy+16, 16, 16)
ratRIGHT = pygame.Rect(enemypos.ratposx-16, enemypos.ratposy, 16, 16)
ratLEFT = pygame.Rect(enemypos.ratposx+16, enemypos.ratposy, 16, 16)

pygame.draw.rect(win, white, ratUP)
pygame.draw.rect(win, white, ratDOWN)
pygame.draw.rect(win, white, ratLEFT)
pygame.draw.rect(win, white, ratRIGHT)


if keys[pygame.K_w] or keys[pygame.K_s] or keys[pygame.K_a] or keys[pygame.K_d]:
if emovement == 1:
if ratUP.colliderect(WRectTOP):
print("rat had hit the wall")
else:
enemypos.ratposy -= ratvel
if emovement == 2:
if ratDOWN.colliderect(WRectBOT):
print("rat had hit the wall")
else:
enemypos.ratposy += ratvel
if emovement == 3:
if ratLEFT.colliderect(WRectLEFT):
print("rat had hit the wall")
else:
enemypos.ratposx -= ratvel
if emovement == 4:
if ratRIGHT.colliderect(WRectRIGHT):
print("rat had hit the wall")
else:
enemypos.ratposx += ratvel

我希望老鼠停在任何墙壁上。

最佳答案

你已经左右互换了。左边是负 x 方向,右边是正 x 方向。所以 ratRIGHTratLEFT 是错误的。

它必须是:

ratRIGHT = pygame.Rect(enemypos.ratposx-16, enemypos.ratposy, 16, 16)
ratLEFT = pygame.Rect(enemypos.ratposx+16, enemypos.ratposy, 16, 16)

ratLEFT  = pygame.Rect(enemypos.ratposx-16, enemypos.ratposy, 16, 16)
ratRIGHT = pygame.Rect(enemypos.ratposx+16, enemypos.ratposy, 16, 16)

关于python - 为什么 "rat"不能穿过TOP和BOTTOM墙,但可以穿过LEFT和RIGHT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57616302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com