Найти - Пользователи
Полная версия: Отрисовка точек
Начало » Python для новичков » Отрисовка точек
1
mma689
Доброго времени суток!
Как эффективно отрисовать массив точек на каждой итерации? Приведу пример:

import pygame
import random
# Window dimensions
width = 640
height = 400
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
running = True
while running:
    for i in range(0,width*height):
        x = random.randint(0, width-1)
        y = random.randint(0, height-1)
        red = random.randint(0, 255)
        green = random.randint(0, 255)
        blue = random.randint(0, 255)
        screen.set_at((x, y), (red, green, blue))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    pygame.display.flip()
    clock.tick(240)

И конечно же имеются лаги… Но очень хочется отрисовывать всю картинку на каждой итерации. Как это можно сделать “быстро”?

Спасибо за внимание!
Shaman
Если важен эффект, а не его математическая достоверность, тогда можно залить случайными точками несколько спрайтов и замащивать ими экран, вибирая из набора случайно. Спрайты можно даже сделать размером с экран.
mma689
Shaman
ммм… тут дело не в математической достоверности или еще чем-то. Просто странно, что достаточно простая операция так убивает ФПС. Если запустить данный код, то ФПС будет равен 0! Может какие другие библиотеки использовать?
Shaman
Ничего странного. Отрисовка поточечно убивает фпс на всех системах.
mma689
Shaman
кроме спрайтов есть еще варианты решения проблемы?
Shaman
Попробовать забивать экранный буфер рандомом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB