2014-11-23 4 views
-1

Мне нужен способ получить список всех спрайтов в определенной области экрана, и я не могу найти нигде в Интернете.
Может кто-нибудь, пожалуйста, дайте мне пример кода, как это сделать?Pygame - Как определить, находятся ли спрайты в области?

Если это помогает, все спрайты находятся в «активном» списке.

+2

Это обнаружение столкновений, и это очень обширная тема. Какова форма области, например? – Dair

+0

Просто прямоугольник нижней четверти экрана. –

ответ

1

Зависит от того, есть ли у вас препятствия или нет, то есть определение «В районе» означает и также множество спрайтов, с которыми вы имеете дело.

Если не так много спрайтов и расстояние вычисляется быстро, то грубая сила, вероятно, в порядке.

for sprite in sprites: 
    if something.distance(sprite) < THRESHOLD: 
     do_something_with_near_sprite(sprite) 

Если у вас есть много спрайтов, посмотрите на квадранты и тому подобное. Если вычисление расстояния затруднено, вам, вероятно, захочется взглянуть на алгоритм A *. Есть библиотеки для этих вещей, поэтому вам не придется их реализовывать самостоятельно, если вы этого не хотите.

Это довольно общий вопрос (подготовить, чтобы он отвергнут другими :)

+0

Я понимаю, что это не лучший вопрос, но мне все же нужна была помощь. Благодарю. –

+0

Это прекрасный помощник .. дайте нам несколько подробностей, и мы можем вам помочь. Какую игру вы делаете? –

Смежные вопросы