Проблемы столкновения в Pygame, почему он работает для статических объектов, но не для движущихся объектов - PullRequest
0 голосов
/ 21 ноября 2018

Я немного читал и заметил несколько предложений по использованию Rect для выполнения столкновений в этой игре.Но я все еще беспокоюсь, что это не работает так, как написано.

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

class ball(object):
    def __init__(self, x, y, radius, speedx, speedy):
        self.x = x
        self.y = y
        self.radius = radius
        self.speedx = speedx
        self.speedy = speedy

    def move(self):
        ##collide with vertical boundaries
        if self.y > screenHeight - self.radius - 10:
            self.speedy = self.speedy*-1
        elif self.y < self.radius + 10:
            self.speedy = self.speedy * -1


        ##collide with level walls
        if self.x == topWall.x and topWall.y < self.y < topWall.y + topWall.frontHeight:
            self.speedx = self.speedx * -1
        elif self.x == midWall.x and midWall.y < self.y < midWall.y + midWall.frontHeight:
            self.speedx = self.speedx * -1
        elif self.x == botWall.x and botWall.y < self.y < botWall.y + botWall.frontHeight:
            self.speedx = self.speedx * -1

        ##collide with player paddle
        if (self.x + self.radius == player.x + player.width and
            player.y <= self.y <= player.y + player.height):
            self.speedx = self.speedx * -1

            self.speedx = self.speedx * -1

Опять же, это работает для отскока от верхних / средних / ботволов, но не отскакивает от игрока.

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