Прямоугольник с изображением Pygame сталкивается со всем, кроме левой стены - PullRequest
0 голосов
/ 04 мая 2020

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

class StartScreen:
    def __init__(self):
        screen.fill(WHITE)
        self.fontTitle = pygame.font.SysFont("arial", 30) #
        self.textTitle = self.fontTitle.render("Legend Of Zelda: ", True, WHITE) 
        self.textRect = self.textTitle.get_rect(center=(displayWidth / 2, 50)) 
        self.moveImage = pygame.image.load("images/link_down1.png")
        self.moveImageRect = self.moveImage.get_rect()
        self.dx = 3
        self.dy = 0
        self.moveImageRect.x = 1
        self.moveImageRect.y = 11
    def update(self):
        if self.moveImageRect.right >= displayWidth:
            self.dy = 3
            self.dx = 0
        if self.moveImageRect.left <= 0:
            self.dy = -1
            self.dx = 0
        if self.moveImageRect.top <= 0:
            self.dy = 0
            self.dx = -3
        elif self.moveImageRect.bottom >= displayHeight:
            self.dx = -3
            self.dy = 0
        self.moveImageRect.move_ip(self.dx, self.dy)

    def draw(self, surf):
        screen.blit(backgroundImage, (backgroundRect)) 
        screen.blit(self.textTitle, self.textRect) 
        screen.blit(backgroundImage, (backgroundRect)) 
        screen.blit(self.moveImage, self.moveImageRect)

1 Ответ

0 голосов
/ 04 мая 2020
if self.moveImageRect.right > 500:
    dy = 1
    dx = 0
    self.moveImageRect.right = 500
elif self.moveImageRect.bottom > 500:
    dy = 0
    dx = -1
    self.moveImageRect.bottom = 500
elif self.moveImageRect.left < 0:
    dy = -1
    dx = 0
    self.moveImageRect.left = 0
elif self.moveImageRect.top < 0:
    dy = 0
    dx = 1
    self.moveImageRect.top = 0

Это сработало для меня, только проверяя, удаляется ли изображение с экрана, затем перемещая его обратно на экран, убедитесь, что оно не сталкивается со стеной, когда его нет.

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