2014-06-16 32 views
0

我目前正致力于在pyhton 3.2.3和pygame中为我的侧滚动游戏创建函数,该功能允许主角收集硬币。我想要做的是当我的角色的位置等于钱的指令时,钱就消失了。这里是我的代码:在Python中用于游戏的硬币收集功能

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

你为什么要遍历'范围(moneyPos-10,moneyPos + 10)'? –

+0

而不是仅仅编辑你的文章,也许你可以解释你正在尝试做什么 –

回答

1

这样做:

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

你几乎赋值零guyPos

0

这样的事情我会用colliderect()已经内置在pygame的功能。只需检查玩家是否碰到任何硬币,如果是这样,则通过将相应的金额添加到该变量中而将硬币添加到玩家的集合中,并将硬币从精灵列表中移除以进行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