Проблема столкновений в pygame

Вот пример моего кода:

if not pygame.sprite.collide_rect(yolo,blocks):



    screen.blit(moonCollect, [randomListX[i]-stageBackground_x, randomListY[i]])

У меня есть два спрайта, и пока они сталкиваются, MoonCollect исчезает. Как исправить логику, чтобы moonCollect не появлялся ВО ВРЕМЯ и ПОСЛЕ столкновения?

Будем признательны за любую помощь и скажите мне, если я неясно выразился.
Спасибо.


person eukoloko    schedule 16.01.2016    source источник


Ответы (2)


вы можете создать переменную, чтобы представить, сталкивалась ли когда-либо луна с вашим объектом

isMoon = false
if pygame.sprite.collide_rect(yolo,blocks):
    isMoon = true

//when rendering
if (isMoon == false):
    screen.blit(moonCollect, [randomListX[i]-stageBackground_x, randomListY[i]])

Таким образом, даже если ваш moonCollect не сталкивается с объектом, но сталкивался с ним в прошлом, он не будет отображаться.

person Ryan    schedule 16.01.2016

Если я правильно понял ваш вопрос, то:

if pygame.sprite.collide_rect(yolo,blocks):

должен решить проблему.

Редактировать: (это, вероятно, неправильно, то, как вы это сформулировали, заставило меня подумать, что вы хотели, чтобы произошло обратное)

person Mukesh Ingham    schedule 16.01.2016