【发布时间】:2014-12-23 22:02:46
【问题描述】:
我是 PyGame 的新手,我正在学习使用 Python 和 PyGame 开始游戏开发这本书。有一个示例(清单 4-9),作者说脚本将在 PyGame 屏幕上绘制十个随机放置、随机着色的矩形。这是书中的代码:
import pygame
from pygame.locals import *
from sys import exit
from random import *
pygame.init()
screen = pygame.display.set_mode((640, 480), 0,32)
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
screen.lock()
for count in range(10):
random_color = (randint(0,255), randint(0,255), randint(0,255))
random_pos = (randint(0,639), randint(0,479))
random_size = (639-randint(random_pos[0], 639), 479-randint(random_pos[1],479))
pygame.draw.rect(screen, random_color, Rect(random_pos, random_size))
screen.unlock()
pygame.display.update()
当我这样做时会发生什么(这是我在逻辑上期望发生的)是它绘制了无限多的矩形。它只是继续执行 for 循环,因为 while 循环始终为 True。我已经在网上搜索过这个,我尝试移动显示更新,但这些东西没有用。它快把我逼疯了!
谢谢!
【问题讨论】:
-
这解决了你的问题吗?
-
代码确实无限运行。但是,内部循环确实创建了 10 个矩形。所以从技术上讲,该脚本确实绘制了十个随机放置、随机着色的矩形。它只是做了无数次。