Функция сбора монет для игры в Python

В настоящее время я работаю над созданием функции для игры в мой боковой скроллер в 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. Любая помощь приветствуется.

2 ответа

При выполнении:

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

вы практически присваиваете ноль guyPos

Для чего-то подобного я бы использовал функцию colliderect(), уже встроенную в pygame. Просто проверьте, сталкивается ли игрок с какой-либо из монет, и если да, добавьте монету в коллекцию игрока, добавив соответствующее количество к этой переменной, и удалите монету из списка спрайтов, чтобы ее сбросить.

В псевдокоде:

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
Другие вопросы по тегам