Почему не отрисовывается линия на поверхности (Pygame)?
Хочу сделать подобие часов в Pygame. Вынес стрелку на отдельную поверхность (sec_surf) для того, чтобы потом её обновлять, чтобы стрелка шла. Но она не отрисовывается в окне. display.update вставил, с координатами вроде все норм.
Код:
import pygame
import time
WIDTH = 480
HEIGHT = 360
FPS = 30
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BROWN = (150, 75, 0)
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
screen.fill(WHITE)
sec_surf = pygame.Surface((200, 200))
sec_surf.fill(WHITE)
screen.blit(sec_surf, (140, 80))
startpoint = pygame.math.Vector2(100, 100)
endpoint = pygame.math.Vector2(195, 100)
angle = 0
pygame.display.set_caption("Clock")
clock = pygame.time.Clock()
pygame.draw.circle(screen, BROWN, (240, 180), 100, 2)
running = True
while running:
for event in pygame.event.get():
# проверить закрытие окна
if event.type == pygame.QUIT:
running = False
angle = time.localtime(time.time()).tm_sec * 6
current_endpoint = startpoint + endpoint.rotate(angle)
pygame.draw.line(sec_surf, BLACK, startpoint, current_endpoint, 2)
pygame.display.update()
clock.tick(30)
pygame.quit()
Источник: Stack Overflow на русском