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

时间:2015-07-01 11:09:00

标签: python image background 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()

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

1 个答案:

答案 0 :(得分:0)

在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帧,具体取决于游戏/硬件。

你当前的程序可能会重新绘制几百帧,所以这肯定会增加滞后。

当我在没有背景的电脑Ubuntu 12.04上查看此内容时。即黑屏。

我的帧费率介于1000 - 2000 FPS之间。