0
あなたはこれがかなりの問題だと知っていますが、問題はこれです。 私はゲームを作ってるんだと私は巨大な空間のエリアはプログラムのランダム化を停止できません。 Pygame
に星をランダム化したいが、私は得ることの結果は以下のとおりです。
- スペースは星ので、すべてが動くの場所をrecaculating続けます。
- これは、ウィンドウの左上隅に1つの星のみを表示します。ここで
完全なコードです:
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()'。 ()を忘れてください。 pygame.event.get()内のイベントのpygame 'のメインループを終了するには、次のコードを使用することをお勧めします: event.typeがpygame.QUITなら#Quit the game X done = False' –
あなたはそれに 'pygame.quit()'を追加しましたが、まだそれを行います。そして、これは星の世代を一回だけ動かすのだろうか?編集:ああ申し訳ありませんが、私は悪いそれは星を実行し、クラッシュは動作するように思われる – cmdtvt