我目前正在为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。任何帮助表示赞赏。
答案 0 :(得分:1)
通过做:
offset = 0 - guy[X]
guyPos = guy[X] + offset
您实际上将零分配给guyPos
答案 1 :(得分: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