Python 游戏中的金币收集功能
我现在正在为我的横版卷轴游戏创建一个功能,使用的是Python 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
我试图通过重新绘制关卡的画面来让金币消失,但不知道为什么这没有成功。我不太确定原因,感觉一切都设置得很正确,但我猜测角色的位置可能从来没有和金币的位置重合过。任何帮助都非常感谢。
2 个回答
0
对于这种情况,我会使用pygame里已经内置的colliderect()函数。你只需要检查一下玩家是否和任何一个金币发生碰撞,如果发生了,就把这个金币加到玩家的收藏里,也就是把相应的数量加到那个变量中,并且把这个金币从要显示的精灵列表中移除。
用伪代码表示的话是这样的:
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
1
通过这样做:
offset = 0 - guy[X]
guyPos = guy[X] + offset
你实际上是把零赋值给了 guyPos
。