Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 30, 2014 17:32:55

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Отрисовка точек

Доброго времени суток!
Как эффективно отрисовать массив точек на каждой итерации? Приведу пример:

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)

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

Спасибо за внимание!

Офлайн

#2 Окт. 30, 2014 21:58:10

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Отрисовка точек

Если важен эффект, а не его математическая достоверность, тогда можно залить случайными точками несколько спрайтов и замащивать ими экран, вибирая из набора случайно. Спрайты можно даже сделать размером с экран.

Офлайн

#3 Окт. 30, 2014 23:07:35

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Отрисовка точек

Shaman
ммм… тут дело не в математической достоверности или еще чем-то. Просто странно, что достаточно простая операция так убивает ФПС. Если запустить данный код, то ФПС будет равен 0! Может какие другие библиотеки использовать?

Офлайн

#4 Окт. 30, 2014 23:25:48

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Отрисовка точек

Ничего странного. Отрисовка поточечно убивает фпс на всех системах.

Офлайн

#5 Окт. 31, 2014 10:31:39

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Отрисовка точек

Shaman
кроме спрайтов есть еще варианты решения проблемы?

Офлайн

#6 Окт. 31, 2014 11:48:44

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Отрисовка точек

Попробовать забивать экранный буфер рандомом.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version