2017-03-04 8 views
1

파이 게임을 사용하여 화면에 큰 반경의 원을 그려보고 싶습니다. 내 디스플레이 표면 (screen)보다 큰 surface1이라는 표면을 정의하고 실제 치수에 내 원을 그립니다. 내가 그것을 한 후에는 surface1을 다시 스케치하여 screen에 표시 할 계획입니다. 여기 내 코드는 다음과 같습니다.파이 게임 (Pygame) - 한 표면에 모든 것을 만들고 표면을 표시하기 위해 모든 것을 만들 수 있습니까?

import pygame 
pygame.init() 
live = True 
while live: 
    surface1 = pygame.Surface((7680, 4320)) 
    screen = pygame.display.set_mode((1280, 720)) 
    # pygame.display.flip() 
    surface1.fill((255, 255, 255)) 

    pygame.draw.circle(surface1, (0, 0, 0), (3839, 2160), 4500, 10) 
    surface1 = pygame.transform.scale(surface1, (1280, 720)) 
    surface1.convert() 
    screen.blit(surface1, (0, 0)) 
    pygame.display.update() 


    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      live = False 

어떤 이유로 원이 보이지 않습니다. 그러나 표시된 윈도우의 색상은 내가 안으로 설정 한 것에 따라 바뀝니다 surface1. 왜 이런 식으로 행동합니까? 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

1

원이 큰 표면보다 큽니다. pos 인수는 원의 중심이며 반경은 너비와 높이의 절반보다 큽니다. 무언가를 더 작게 그리십시오.

또한 거대한 표면을 조작하면 성능이 매우 떨어집니다.

+0

그래, 나는 그것을 알아 차리지 못했다. 감사. 그러나 원이 반경이 1500이라고 가정 해보십시오. 이것이 올바른 논리입니까? –

+0

@Syamprasad K R 그렇습니다. 더 작은 원으로 작동하지만 큰 표면과 변형 때문에 프레임 속도가 매우 낮습니다. 왜 실제로 그걸합니까? – skrx

+1

이것은 엔지니어링 문제를 해결하고 실제 크기가 큽니다. 나는 모든 요인들을 축소하는 것을 피하려고 노력하고있다. 그러나 그것은 내가 지금하고있는 일이다. –