Когда в моей игре сталкиваются два спрайта (игрок и «ключ»), я бы хотел, чтобы переменная счета увеличивалась на 100 пунктов. Я пробовал много методов, но все они делают то же самое; когда спрайт в контакте с ключом, переменные непрерывно увеличиваются. Мне нужно, чтобы он увеличивался один раз за столкновение. Это лишь один из способов, которые я попробовал:Создание функции оценки в pygame с коллизиями
def key_collect():
global key_score
global score_rect
k_rect = pygame.draw.rect(SURF, (0,0,0), (k_spritex, k_spritey, 30, 40), 1)
p_score_rect = pygame.draw.rect(SURF, (0,0,0), (p_spritex, p_spritey, 30, 40), 1)
if p_score_rect.colliderect(k_rect):
if score_rect == True:
key_score = key_score + 100
return key_score
score_rect = False
return score_rect
Я попытался сделать так, счет будет увеличиваться на 100, если переменная score_rect была правда, а затем сделать его значение False, не означает, что он больше не может увеличиваться. Я собирался сделать так, чтобы, когда спрайты не столкнулись, переменная снова вернулась к True, так что процесс повторяется. Тем не менее, он снова постоянно увеличивается, пока спрайты остаются в контакте. Я действительно застрял, и любая помощь приветствуется.
Это работает только с небольшим изменением отступа (который я редактировал) :) Спасибо, так много, я думал, что мне придется начинать все снова с моего проекта, который вы буквально сохранил половину моего уровня A, так как я не знал, что вы можете сразу вернуть две переменные, спасибо xD !! Цените помощь так много – gruntapocalypse