Как исправить проблему ООП с изменением непрозрачности в Pygame - PullRequest
0 голосов
/ 04 февраля 2019

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

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

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

class PicEditor:

    def scale(Pic,scaleX,scaleY):
        Pic.blit = pygame.transform.scale(Pic.blit,(scaleX,scaleY))

    def opacity(Pic,opc):
        Pic.blit.set_alpha(opc)
        print(opc) #attempt at figuring out the problem

И это код, который я пытаюсь запустить.

while not crashed:
    display.gameLoopTop() #the usual game loop used ontop in pygame
    PicEditor.opacity(templatePic,opacityTemplate) #the issue
    PicEditor.scale(templatePic,displayX,displayY) #scaling an image (works fine)
    templatePic.blitIMG() #bliting the image
    display.gameLoopBottom() #the bottom of a game loop which includes the clock function and pygame display update
pygame.quit()
exit()

Ожидаемые результаты состоят в том, что изображение изменит свою непрозрачность на 50 (opacityTemplate = 50), тогда изображение будет соответствовать размеруэкран (displayX, displayY), а затем, что он мигает.

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

...