Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2021 12:52:43

Khudya
Зарегистрирован: 2021-05-04
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

заполнение поля

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


 import pygame as pg
import sys
import random as rnd
class FiveSquares:
    def __init__(self):
        self.size = 401
        self.fps = 60
        # colors
        black = (0, 0, 0)
        white = (255, 255, 255)
        self.sc = pg.display.set_mode((self.size, self.size))
        self.clock = pg.time.Clock
        self.side = 100
        self.c = 1
        self.v = 1
        # сетка
    def DrawGrid(self):
        for i in range(6):
            pg.draw.line(self.sc, pg.Color('white'), [100 * i, 0], [100 * i, 400])
            pg.draw.line(self.sc, pg.Color('white'), [0, 100 * i], [400, 100 * i])
        # заполнение квадратиками
    def DrawSqr(self, c, v):
        c = self.c
        v = self.v
        for i in range(self.c):
            pg.draw.rect(self.sc, pg.Color('green'), (rnd.randrange(0, 4, 1)*self.side, rnd.randrange(0, 4, 1)*self.side, self.side, self.side))
    def run(self):
        clock = pg.time.Clock()
        while True:
            self.sc.fill('black')
            clock.tick(1)
            for event in pg.event.get():
                if event.type == pg.QUIT:
                    sys.exit()
            self.DrawSqr(self.c, self.v)
            self.DrawGrid()
            self.c += 1
            self.v += 1
            pg.display.flip()
FiveSquares().run()

Отредактировано Khudya (Май 16, 2021 15:56:35)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version