Всякий раз, когда я бью монеты (предметы коллекционирования) в моей игре, они должны полностью исчезать с экрана, но этого не происходит. После удара он исчезает, но он все еще там, что увеличивает мой счет, когда я нахожусь в положении монет
Вот код для проверки столкновения:
# This function works for Coins Only
def coinsHit_or_not(self, hero, thecoin):
hit = pygame.sprite.collide_rect(hero, thecoin)
if hit:
thecoin.hit()
self.score += 2
и мой класс монет (включает функцию hit ()):
class Coins(pygame.sprite.Sprite):
coinsFadeAway = [pygame.image.load('CoinsFadeAway/CS1.png'), pygame.image.load('CoinsFadeAway/CS2.png'),
pygame.image.load('CoinsFadeAway/CS3.png'), pygame.image.load('CoinsFadeAway/CS4.png'),
pygame.image.load('CoinsFadeAway/CS5.png'), pygame.image.load('CoinsFadeAway/CS6.png'),
pygame.image.load('CoinsFadeAway/CS7.png'), pygame.image.load('CoinsFadeAway/CS8.png'),
pygame.image.load('CoinsFadeAway/CS9.png'), pygame.image.load('CoinsFadeAway/CS10.png'),
pygame.image.load('CoinsFadeAway/CS11.png')]
def __init__(self, x, y):
super().__init__()
self.x = x
self.y = y
self.coinTouched = False
self.coins = pygame.image.load('CoinOG_Small.png')
self.coinSpin = 0
self.rect = self.coinsFadeAway[0].get_rect().move(x, y)
def draw(self, window):
if not self.coinTouched:
window.blit(self.coins, (self.x, self.y))
if self.coinSpin < 11:
window.blit(self.coinsFadeAway[self.coinSpin], (self.x, self.y))
self.coinSpin += 1
elif self.coinSpin > 11:
self.coinTouched = False
def hit(self):
self.coinTouched = True
Может ли кто-нибудь помочь мне выяснить, как мне полностью удалить этот спрайт с экрана или наоборот, чтобы монеты исчезли, но счет не увеличился, когда я остался в позиции монет