0

我目前正在为我的 pyhton 3.2.3 和 pygame 中的横向卷轴游戏创建一个功能,该功能允许主角收集硬币。我想做的是当我的角色的位置等于钱的位置时,钱就消失了。这是我的代码:

def drawMoney(x,y):
offset = 0 - guy[X]
guyPos = guy[X]+640
moneyPos = x
print(guyPos,moneyPos)
if lvlNum == level1:
    money1  = screen.blit(money,(offset+x, y))
if guyPos == moneyPos or guy[Y] == y:
    y = 10000

我试图通过重新调整关卡图片来让钱消失,但由于某种原因,这不会发生。我不知道为什么,但由于某种原因它不起作用。一切似乎都是正确的,但我假设 guyPos 永远不会等于 moneyPos。任何帮助表示赞赏。

4

2 回答 2

1

通过做:

offset = 0 - guy[X] 
guyPos = guy[X] + offset

您实际上将零分配给guyPos

于 2014-06-16T22:56:52.627 回答
0

对于这样的事情,我会使用 pygame 中已经内置的 colliderect() 函数。只需检查玩家是否与任何硬币碰撞,如果是,则通过将相应数量添加到该变量并将硬币从精灵列表中删除来将硬币添加到玩家的收藏中以进行 blit。

在伪代码中:

For coin in coin_list:
    Does the coin collide with the player (check by using pygame.Rect.colliderect())
        If so: add coin amount to player's coin variable and remove coin from coin_list
于 2014-06-17T10:46:10.547 回答