旋转表面并保持质量 - pygame

问题描述

我正在 pygame 中制作游戏,并尝试使用 rotozoom 方法使图像在按下“a”键时向左旋转。它确实有效并且图像会旋转,但是,几秒钟后它似乎质量下降,最终游戏崩溃。我找不到解决方案。如何使图像不丢失质量?任何帮助将不胜感激。

import pygame
pygame.init()

clock = pygame.time.Clock()

# Screen setup
screen_width = 600
screen_height = 600

screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption("Jet fighter Game")

# Colors
black = (0,0)
white = (255,255,255)
grey = (100,100,100)

# Classes

class PLAYER1:
    def __init__(self):
        self.jetSurface = pygame.image.load("player1 - blackJet.png")
        self.x = 100
        self.y = 100
        self.jetRect = self.jetSurface.get_rect(center = (self.x,self.y))
        self.angle = 20

    def displayJet(self):
        screen.blit(self.jetSurface,self.jetRect)

    def moveJet(self):
        key = pygame.key.get_pressed()

        if key[pygame.K_a]:
            self.angle = 20
            self.jetSurface = pygame.transform.rotozoom(self.jetSurface,self.angle,1)
            self.jetRect = self.jetSurface.get_rect(center=(self.x,self.y))

class PLAYER2:
    pass


class BULLET1:
    pass


class BULLET2:
    pass


class MAIN:
    def __init__(self):
        self.player1 = PLAYER1()

    def displayImages(self):
        self.player1.displayJet()

    def moveJets(self):
        self.player1.moveJet()

main = MAIN()

# Main loop
run = True

while run:

    # Checking for events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

        # Drawing on screen
        screen.fill(grey)
        main.displayImages()

        # Movement and Collisions
        main.moveJets()

        pygame.display.flip()
        clock.tick(60)

pygame.quit()

解决方法

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

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

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