我用Python制作粉末玩具,我遇到了一些问题。首先,代码运行得很慢。我知道问题出在我的主文件中:http://pastebin.com/bbQ4H4Xu。其他文件只是检测输入/创建2d数组,所以问题不存在。
在我的主文件中,问题似乎出现在方法updatescreen()
中。如何提高此功能的性能?
import pygame
#inputkey.py
from pygame.locals import *
def input_key():
global inputt
inputt = ""
key = pygame.key.get_pressed()
if key[K_q]:
return 'q'
elif key[K_w]:
return 'w'
elif key[K_e]:
return 'e'
elif key[K_r]:
return 'r'
#Createblocks.py
blocks = []
for i in range(400):
blocks.append([])
for j in range(400):
blocks[i].append(0)
答案 0 :(得分:1)
您的Main.py
文件在循环中有一个print语句:
def updatescreen():
#The problem is here, it slows down the code.
for i in range(windh):
for x in range(windw):
print x, i # <== Here
if not blocks[i][x] == 0:
if blocks[i][x] == "Stone":
screen.blit(elementStone, (x,i))
大概是为了调试?这是执行windw
* windh
= 2,500次打印操作,这肯定会减慢代码速度。尝试删除它,看看它是如何改进的。