Pygame: изменить размер пикселя - PullRequest
0 голосов
/ 04 января 2019

С помощью pygame я создал окно 20x20 пикселей и добавил прямоугольник 2x2 пикселей. Когда я запускаю программу, размер окна очень маленький, и я едва вижу прямоугольник. Как я могу увеличить размер окна, сохранив при этом количество пикселей постоянным, то есть увеличить размер пикселя? Мне известен этот похожий вопрос , но там обсуждается несколько более сложный случай.

import pygame
screen_width, screen_height = 20, 20
x, y = 10, 10
rect_width, rect_height = 2, 2
vel = 2
black = (0, 0, 0)
white = (255, 255, 255)
pygame.init()
win = pygame.display.set_mode((screen_width, screen_height))
run = True
while run:
    pygame.time.delay(100)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    win.fill(black)
    pygame.draw.rect(win, white, (x, y, rect_width, rect_height))
    pygame.display.update()
pygame.quit()

1 Ответ

0 голосов
/ 04 января 2019

Не рисовать прямо на экране, а на другом Surface.

Затем масштабируйте это новое Surface до размера экрана и перетяните его на реальную поверхность экрана.

Вот пример:

import pygame
screen_width, screen_height = 20, 20

scaling_factor = 6

x, y = 10, 10
rect_width, rect_height = 2, 2
vel = 2
black = (0, 0, 0)
white = (255, 255, 255)
pygame.init()
win = pygame.display.set_mode((screen_width*scaling_factor, screen_height*scaling_factor))

screen = pygame.Surface((screen_width, screen_height))

run = True
while run:
    pygame.time.delay(100)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    screen.fill(black)
    pygame.draw.rect(screen, white, (x, y, rect_width, rect_height))

    win.blit(pygame.transform.scale(screen, win.get_rect().size), (0, 0))
    pygame.display.update()
pygame.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...