столкновение рабочего спрайта - PullRequest
0 голосов
/ 07 декабря 2011

У меня две проблемы с моим кодом:

  1. Я не знаю, как заставить моего персонажа проверить, сталкивается ли он с блоками

  2. Как мне переходить на новый экран каждый раз, когда она проходит уровень? Поэтому, когда персонаж достигает лестницы, должен появиться новый экран, показывающий новый уровень

Вот весь мой код:

http://pastebin.com/u/bluesplay106

Я довольно новичок в Pygame, поэтому мой стиль может быть не очень хорошим, и я довольно жестко запрограммировал эту игру. Если бы вы могли сказать мне, как решить мою проблему, это было бы действительно здорово !!

1 Ответ

0 голосов
/ 15 декабря 2011

для обнаружения столкновений вам нужно превратить вашего персонажа и ваши блоки в спрайтов и таким образом обнаруживать столкновения.

Что касается нового экрана, когда вы поднимаетесь по лестнице, вы можете использовать следующее утверждение:

if heroSprite_x >= 200 and heroSprite_x <= 300:
    if heroSprite_y >= 300 and heroSprite_y <= 400:

        #go to new screen using either a new level from a list or a new class or whatever method you want.

Ваш вопрос был немного расплывчатым, но я надеюсь, что вы искали:)

Я только что понял, что не ответил на ваш первый вопрос, вот фрагмент из одной из моих игр:

unit_enemy = pygame.sprite.groupcollide(unitgroup, enemygroup, True, pygame.sprite.collide_mask) 

for hit in unit_enemy:
    #do something

Это проверяет, попали ли какие-либо враги в мой отряд.Так что в вашем случае это будет ваш герой, а враги - блоки.

Вот документация по обнаружению столкновений.

http://pygame.org/docs/ref/sprite.html

...