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

旋转表面并保持质量 - pygame

如何解决旋转表面并保持质量 - 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 举报,一经查实,本站将立刻删除。