Pygame의 surface.blit() 함수
이 튜토리얼은 파이게임에서 blit()
함수가 무엇을 하는지 알려줍니다.
여기에 표시된 코드는 유효한 파이게임 창에 대한 완전한 코드가 아닙니다. 베어본 프레임워크에 관심이 있다면 이 문서를 참조하십시오.
Pygame의 surface.blit()
함수
파이게임은 표면을 중심으로 회전하며 blit()
함수는 이러한 표면을 겹칩니다. 이것의 가장 눈에 띄는 예는 본질적으로 단지 표면일 뿐인 우리의 스크린이 될 것이며 우리는 우리가 보는 모든 것을 그 위에 블리팅합니다.
그러나 다른 표면을 만들고 blit()
을 사용하여 중첩할 수도 있습니다. 이 작업을 수행하기 전에 이 메서드에 전달할 수 있는 다양한 인수를 설명합니다.
나중에 구체적인 예를 살펴보겠지만 지금은 기능에 중점을 둘 것입니다.
아래에서 blit()
메서드의 구조를 볼 수 있습니다. 표면을 설정하지 않았기 때문에 이 코드는 작동하지 않는다는 점을 기억하십시오.
하나의 표면에서 blit()
함수를 호출하고 오버레이된 표면을 제공하는 것으로 시작합니다. 그런 다음 surfaceTwo
의 왼쪽 상단이 surfaceOne
에 있을 위치를 지정합니다.
여기서 끝내면 blit()
이 작동하지만 두 개의 인수를 더 전달할 수 있습니다. 이 영역은 블리트될 surfaceTwo
의 영역을 나타내는 rect
입니다.
따라서 그것의 일부와 special_flags
만으로 blit의 블렌드 모드를 정의할 수 있습니다.
코드 조각:
surfaceOne.blit(surfaceTwo, destination, area=none, special_flags=none)
Pygame에서 surface.blit()
함수 사용
이제 구체적인 예를 살펴보겠습니다. 일부 표면을 만드는 것으로 시작하겠습니다. 이 코드는 메인 루프 앞에 있음을 명심하십시오.
원하는 치수를 제공해야 하는 Surface()
메서드를 사용하여 새 표면을 만들 수 있습니다. 또한 나중에 볼 수 있도록 두 표면을 색상으로 채웁니다.
코드의 마지막 다섯 줄에서 blit()
함수가 작동하는 것을 볼 수 있습니다.
코드 조각:
surfaceOne = pygame.Surface((100, 100))
surfaceOne.fill(
(
200,
100,
100,
)
)
surfaceTwo = pygame.Surface((30, 30))
surfaceTwo.fill(
(
100,
200,
100,
)
)
surfaceOne.blit(surfaceTwo, [10, 10], [0, 0, 10, 5])
이제 surfaceOne
을 화면에 출력하기만 하면 결과가 표시됩니다. 이 코드는 메인 루프에서 발생합니다.
screen.blit(surfaceOne, [10, 10])
출력:
완전한 예제 코드
# Imports
import sys
import pygame
# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height), pygame.RESIZABLE)
surfaceOne = pygame.Surface((100, 100))
surfaceOne.fill(
(
200,
100,
100,
)
)
surfaceTwo = pygame.Surface((30, 30))
surfaceTwo.fill(
(
100,
200,
100,
)
)
surfaceOne.blit(surfaceTwo, [10, 10], [0, 0, 10, 5])
# Game loop.
while True:
screen.fill((20, 20, 20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.blit(surfaceOne, [10, 10])
pygame.display.flip()
fpsClock.tick(fps)
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub