Пигментное столкновение между игроком и блоком - PullRequest
0 голосов
/ 28 марта 2012

Я делаю игру и хочу проверить столкновение между игроком и блоком и оттолкнуть игрока назад, если это необходимо.

def collide(self,player):
    if self.solid:
        if self.rect.colliderect(player.rect):
            if self.rect.bottom-1 <= player.rect.top and player.pos == 'up':
                player.up = 0
                player.rect.move(0,1)
            if self.rect.top+1 >= player.rect.bottom and player.pos == 'down':
                player.down = 0
                player.rect.move_ip(0,-1)
            if self.rect.left+1 <= player.rect.right and player.pos == 'right':
                player.right = 0
                player.rect.move_ip(-1,0)
            if self.rect.right-1 >= player.rect.left and player.pos == 'left':
                player.left = 0
                player.rect.move_ip(1,0)

, но по какой-то причине это не работает.Кто-нибудь может мне помочь?Заранее спасибо

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Если вы хотите, чтобы ваши объекты были сдвинуты назад, то самый простой способ - это немного изменить вашу функцию update ().

Каждый раз, когда вы двигаетесь, запишите текущую позицию как «self._oldposition» (или что-то подобное) Когда вы сталкиваетесь, вам нужно будет установить текущую позицию на старую (self._oldposition)

Это позаботится о большинстве ваших проблем столкновения.

1 голос
/ 28 марта 2012

Попробуйте заменить

def Collide(player,self):

по

def collide(self, player):

если это метод какого-то класса Obstacle. Просто угадай ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...