问题描述
这是我的代码idk为什么它运行这么慢 为什么我的代码运行这么慢请帮帮我! 提前谢谢你
import pygame
from rgb import *
from pygame.constants import *
pygame.init()
height=700
width=1500
center=(780,450)
ball_pos=[500,550]
sky_pos=[0,-1000]
screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
pygame.display.update()
running=True
while running:
for event in pygame.event.get():
keys = pygame.key.get_pressed()
if keys[K_SPACE]:
running=False
pygame.display.update()
sky=pygame.image.load("sky.jpg")
if keys[K_RIGHT]:
sky_pos[0]-=1
screen.blit(sky,sky_pos)
class Circle:
pygame.draw.circle(screen,green,ball_pos,50)
pygame.display.update()
screen.fill(black)
pygame.quit()
我尝试了一切,但没有任何效果 我想让天空平滑地向左移动,虽然我不知道怎么做!
解决方法
您的代码存在一些问题,但最明显的是您正在将图像加载到应用程序循环中。 pygame.image.load
非常耗时,因为它必须从数据存储中读取图像。
在应用程序循环之前加载一次图像,而不是连续在循环中:
sky=pygame.image.load("sky.jpg") # <--- ADD
running=True
while running:
# [...]
# sky=pygame.image.load("sky.jpg") <--- DELETE