0
0 Комментариев
def draw_pixel(position):
    global SIZE
    global COLOR
    SCREEN.fill(COLOR, (position, SIZE))
 
 
while True:  # main loop
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        if event.type == MOUSEBUTTONDOWN:
            FLAG = True
        if event.type == MOUSEBUTTONUP:
            FLAG = False
    if FLAG:
        pos = pygame.mouse.get_pos()
        draw_pixel(pos)
    change_brush_size_button.draw_button()
    pygame.display.update()

Обычная рисовалка. Зажал левую кнопку — рисуешь линию в один пиксель. Но линия получается отрывистая, потому что, как я понял, между получением текущей позиции мыши и отрисовкой пикселя проходит некоторое время. Возможно, я ошибаюсь в причине, но всё же мне думается, что надо как-то всё это дело правильно привязать ко времени. Когда речь идёт о перемещении спрайта персонажа в игре, то я понимаю, как это сделать. Там просто надо обновлять время в начале каждого цикла и умножать время на скорость персонажа. Но вот тут я что-то запутался.
Я знаю, что вместо отрисовки отдельных пикселей можно рисовать линии (pygame.draw.line()). Но мне это в данной ситуации не подходит. Нужно сделать плавной и непрерывной отрисовку отдельных пикселей, если это возможно. В итоге из этого должен получиться редактор для пиксель-арт графики, поэтому мне важен контроль над отдельными пикселями.
Может кто-нибудь подсказать, в каком направлении мне копать?


Добавить комментарий