Функция сбора монет для игры в 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