簡體   English   中英

當我逐像素前進時,Pygame沒有畫任何東西

[英]Pygame isn't drawing anything when I go pixel by pixel

我試圖制作一個將顯示mandelbrot集的python程序,並且試圖逐像素渲染它,但它僅顯示黑色。

我正在運行python 3.7,並且正在使用pygame版本1.9.4。 唯一不起作用的是渲染。

import pygame
pygame.init()
screen = pygame.display.set_mode((1000,1000))
carryOn=True
pressed=False
for i in range(len(mandelbrot)):
    for j in range(len(mandelbrot[i])):
        if j:
            pygame.draw.rect(screen, (0,0,0), (j, i, 1,1))
        else:
            pygame.draw.rect(screen, (255,255,255),(j, i, 1,1))
pygame.display.flip()
while carryOn:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            carryOn=False

    pygame.time.Clock().tick(40)
pygame.quit()

mandelbrot在我的代碼中已定義

我本來希望得到mandlebrot集的圖像,但是我只得到了一個黑色的pygame窗口。

您需要在矩形上指定線寬。 它默認為0,所以我認為pygame不會繪制沒有輪廓的單像素填充矩形。

在末尾添加寬度1可以繪制像素:

pygame.draw.rect(screen, (255,255,255),(j, i, 1, 1), 1)

如果要繪制到屏幕上,則應將繪制函數和flip()放在while循環中。

#I assume this is your main loop?
while carryOn:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            carryOn=False

    # clear the screen with black
    screen.fill((0,0,0)

    # assume mandelbrot is a 2D-Array
    for i in range(len(mandelbrot)):
        for j in range(len(mandelbrot[i])):
            if j:
                pygame.draw.rect(screen, (0,0,0), (j, i, 1,1))
            else:
                pygame.draw.rect(screen, (255,255,255),(j, i, 1,1))

    # display.flip should be in the while loop
    pygame.display.flip()
    pygame.time.Clock().tick(40)

pygame.quit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM