Python 如何加载以pygame为背景的巨大图像?
我正在用pygame制作一个格斗游戏,但每当我加载一个背景940x680 PNG时,程序就会开始严重滞后,下面是我的代码: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
#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。我来看看。我认为用户的问题在于他的帧速率。是的,这是主要问题。他没有清除事件队列。