微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 图像未更新

如何解决Pygame 图像未更新

class Button:

    buttons = []

    def __init__(self,blitX,blitY,textureFile,width,height,rotateAngle=0,hoveredTextureImage=None):
        self.textureImage = pygame.transform.rotate(pygame.transform.scale(pygame.image.load(textureFile),(width,height)),rotateAngle)
        if hoveredTextureImage is not None:
            self.hoveredTextureImage = pygame.transform.rotate(pygame.transform.scale(pygame.image.load(
                                       hoveredTextureImage),rotateAngle)
        else:
            self.hoveredTextureImage = self.textureImage
        self.blitX = blitX
        self.blitY = blitY
        self.height = height
        self.displayImage = self.textureImage

        self.addButton(self)

        self.createMouseParameters()

    def createMouseParameters(self):
        self.startX = self.blitX
        self.endX = self.startX + self.displayImage.get_width()

        self.startY = self.blitY
        self.endY = self.startY + self.displayImage.get_height()

    def draw(self,window):
        window.blit(self.displayImage,(self.blitX,self.blitY))

    def mouSEOnButton(self,mouseX,mouseY):
        if self.startX <= mouseX <= self.endX:
            if self.startY <= mouseY <= self.endY:
                self.displayImage = self.hoveredTextureImage
                return True
            else:
                self.displayImage = self.textureImage
        else:
            self.displayImage = self.textureImage

    @classmethod
    def addButton(cls,button):
        cls.buttons.append(button)

    @classmethod
    def detectMouseHover(cls,mouseY):
        for button in cls.buttons:
            button.mouSEOnButton(mouseX,mouseY)

这是我的按钮类。当鼠标在按钮上时,按钮应该切换到另一个图像(hoveredTextureImage)。我在我的游戏循环中调用方法“detectMouseHover”,以便游戏可以更新按钮的图像。我遇到的问题是图像没有改变。关于如何修复它的任何想法?

如果有人对如何使代码更简洁和简单有任何想法,我也将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。