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

为什么我的屏幕不能用 pygame 在 python 中更新?

如何解决为什么我的屏幕不能用 pygame 在 python 中更新?

我正在用 pygame 编写代码,但我的屏幕没有用 pygame.display.flip() 更新 有人可以帮我吗?

我的代码: 主文件

import pygame
pygame.init()
from game import Game

pygame.display.set_caption("Run !")
screen = pygame.display.set_mode((1080,680))

game = Game()

running = True

while running:
    game.update(screen)

    pygame.display.flip()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            pygame.quit()
        elif event.type == pygame.KEYDOWN:
            game.key_pressed[event.key] = True
        elif event.type == pygame.KEYUP:
            game.key_pressed[event.key] = False

游戏文件

import pygame
from player import Player

class Game(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()
        self.player = Player()
        self.key_pressed = {}

    def update(self,screen):
        screen.blit(self.player.image,self.player.rect)


        if self.key_pressed.get(pygame.K_RIGHT):
            self.player.move_right()
        if self.key_pressed.get(pygame.K_LEFT):
            self.player.move_left()
        if self.key_pressed.get(pygame.K_UP):
            self.player.move_up()
        if self.key_pressed.get(pygame.K_DOWN):
            self.player.move_down()

        pygame.display.flip()


和播放器文件

import pygame

class Player(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()
        self.veLocity = 3
        self.image = pygame.image.load('res/player.png')
        self.image = pygame.transform.rotozoom(self.image,0.9)
        self.rect = self.image.get_rect()

    def move_right(self):
        self.rect.x += self.veLocity

    def move_left(self):
        self.rect.x -= self.veLocity

    def move_up(self):
        self.rect.y -= self.veLocity

    def move_down(self):
        self.rect.y += self.veLocity

我可以看到玩家移动(它是一个蓝色方块),但之前的图像没有被删除。所以当它移动时我看到一条蓝线而不是一个正方形

非常感谢!

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