Python 如何加载以pygame为背景的巨大图像?

Python 如何加载以pygame为背景的巨大图像?,python,image,background,pygame,Python,Image,Background,Pygame,我正在用pygame制作一个格斗游戏,但每当我加载一个背景940x680 PNG时,程序就会开始严重滞后,下面是我的代码: #import section import os import pygame import time from pygame.locals import * #end of import section #initiazing pygame pygame.init() print "Loaded Pygame 100%" #lengths width, height

我正在用pygame制作一个格斗游戏,但每当我加载一个背景940x680 PNG时,程序就会开始严重滞后,下面是我的代码:

#import section
import os
import pygame
import time
from pygame.locals import *

#end of import section

#initiazing pygame
pygame.init()
print "Loaded Pygame 100%"

#lengths
width, height = 940,680

#opening window
screen = pygame.display.set_mode((width, height))

#position
background = [0,0]


#loading images
back = pygame.image.load("resources/image/Back.png")

print "Loaded graphics 100%"


while 1:



    #clear to reload
    screen.fill(0)

    #drawing background
    screen.blit(back, background )

    #update
    pygame.display.flip()

这可能是一个新手问题,但我刚刚开始,所以是的…

在pygame中,您需要使用您编写的代码

#clear to reload
screen.fill(0)

#drawing background
screen.blit(back, background )

#update
pygame.display.flip()
如果你在屏幕上添加一个玩家,然后移动他。您会注意到,除非重新绘制背景,否则将多次看到该角色

Pygame不仅允许您将图像添加到屏幕上并四处移动,还必须重新绘制背景以去除前一帧

您应该添加到代码中的另一件事是等待

clock = pygame.time.Clock()
FPS = 30

while 1:
    clock.tick(FPS)
这将设置帧速率。我想说的是,根据游戏/硬件的不同,你通常需要30-60帧

您当前的程序可能会将帧重绘数百次,因此这肯定会增加延迟

当我在没有背景的情况下在我的pc Ubuntu12.04上检查时。i、 e.黑屏


我的帧速率在1000-2000 FPS之间。

我对pygame不是非常熟悉,但这不是每帧都重新绘制背景吗?这就是问题所在,我想,我不知道如何避免每次都重新绘制背景。你不能只更新屏幕上的内容,而不是清除它并重新绘制所有内容吗?你是怎么做到的试着阅读以下内容:应该会有帮助,因为它回答了其他人的一些pygame问题。你必须重新绘制背景以摆脱前一帧。注意:是的,但你不必重新绘制整个背景,查看pygame的DirtySpite和LayeredDirty。我来看看。我认为用户的问题在于他的帧速率。是的,这是主要问题。他没有清除事件队列。