0
叶我知道这是相当低调的问题,但问题是这样的。 我正在做一个游戏,我想随机明星来了巨大的空间区域无法停止程序随机化。 Pygame
但结果是我得到的是:
- 空间保持recaculating明星的地方,这样的一切动作。
- 它仅显示窗口左上角的一颗星。
下面是完整的代码:
import os
import pygame
from pygame.locals import *
import random
gstars = 500
gstarmax = 0
red = (255,0,0)
yellow = (240,250,60)
timer = 0
size = [1600, 1000]
screen = pygame.display.set_mode((1600, 1000), HWSURFACE | DOUBLEBUF | RESIZABLE)
pygame.display.set_caption('planet system test')
clock = pygame.time.Clock()
area = pygame.image.load("screenMonitor.png")
done = False
while done == False:
pygame.event.pump()
mouse_x, mouse_y = pygame.mouse.get_pos()
timer += 1
if timer > 99:
timer = 0
screen.fill((0,0,0))
pygame.draw.rect(screen, red, (20, 20, 1350, 480), 2)
pygame.draw.rect(screen,yellow,(2,2,2,2),2)
go = True
if go == True:
for i in range(gstars):
s1 = random.randrange(1,1600)
s2 = random.randrange(1,1000)
colorSelect = random.randrange(0,5)
if colorSelect == 1:
yellow = (240,250,60)
if colorSelect == 2:
yellow = (249,173,60)
if colorSelect == 3:
yellow = (226,43,68)
if colorSelect == 4:
yellow = (52,173,84)
go = False
pygame.draw.rect(screen,yellow,(2+s1,2+s2,2,2),2)
pygame.display.flip()
clock.tick(30)
pygame.quit()
代码似乎正常工作,它会正确生成星形,但程序卡住了。它不会给出任何崩溃消息,它只是停止响应。试图找出它,但看到没有什么是错的。 – cmdtvt
对不起,我的代码中有个小错误:'pygame.event.pump()'。忘记()。 如果event.type是pygame.QUIT,我倾向于使用以下代码退出pygame的主循环:for event in pygame.event.get(): :#如果X done = False,则退出游戏 –
我添加了'pygame.quit()',但它仍然可以。这是否仅仅运行一代恒星?编辑:哦,对不起,我的坏运行明星知道,不会崩溃似乎工作知道 – cmdtvt