2014-06-16 69 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