如何在我的 pygame 游戏中添加碰撞?

问题描述

我不知道如何添加与平台的碰撞

class Platform(pygame.sprite.Sprite):
    def __init__(self,xloc,yloc,imgw,imgh,img):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(os.path.join('grafika',img)).convert()
        self.image.convert_alpha()
        self.rect = self.image.get_rect()
        self.rect.y = yloc
        self.rect.x = xloc


class Player(pygame.sprite.Sprite):

    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.movex = 0
        self.movey = 0
        self.frame = 0
        self.playerx = 10
        self.playery = 475
        self.jump_images = []
        self.right_images = []
        self.left_images = []
        for i in range(45):
            img = pygame.image.load(f"grafika/przod/sprite_{i}.png")
            img.convert_alpha()
            self.right_images.append(img)
            self.image = self.right_images[0]
            self.rect = self.image.get_rect()

        for i in range(45):
            img = pygame.image.load(f"grafika/tyl/tyl{i}.png")
            img.convert_alpha()
            self.left_images.append(img)
            self.image = self.left_images[0]
            self.rect = self.image.get_rect()            
    def control(self,x,y):
        self.movex += x
        self.movey += y

    def update(self):
        self.playerx += self.movex
        self.playery += self.movey

        
        
        if self.movex < 0:
            self.frame += 1
            if self.frame + 1 == 46:
                self.frame = 0
            self.image = self.left_images[self.frame]
            self.movex = 0
            self.movey = 0
        if self.movex > 0:
            self.frame += 1
            if self.frame + 1 == 46:
                self.frame = 0
            self.image = self.right_images[self.frame]
            self.movex = 0
            self.movey = 0
        if self.movey < 0:
            self.movex = 0
            self.movey = 0
        else:
            self.movey = 0                                       

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)