pygame : 2D 게임 개발을 위한 python 라이브러리. SDL 기반으로 크로스-플랫폼이라 이식이 쉬우며 (python 을 돌릴 수 있는 플랫폼이라면 어디서든 실행 가능), 게임 개발이 아니라도 이미즈 프로세스, 조이스틱 입력 음악 재생 등의 기능을 떼어다 쓰기도 한다.
출처 : https://www.pygame.org/docs/
■ pygame 상위 패키지
>> init
- Purpose : import 된 모든 pygame 모듈 initialize
- Signature : init()
- Parameters :
- return : (numpass, numfail)
Variables Type Description numpass int 모듈 초기화 성공횟수 numfail int 모듈 초기화 실패횟수 - 모듈을 초기화하다가 실패했다고 해서 예외가 발생하지는 않는다. 단지 실패횟수만 반환한다.
>> quit
- Purpose : pygame 모듈 initialize 해제(uninitialize)
- Signature : quit()
- Parameters :
- return :
- python 인터프리터가 종료 될때 이 메소드는 자동으로 호출 되지만, 만약 pygame 을 종료 후 다른것을 진행해야 한다면 호출 해주어야 한다.
■ display
>> set_mode
- Purpose : display 할 window 또는 screen 을 initialize 함.
- Signature : set_mode(size=(width, height), flags=, depth=0, display=0, vsync=0)
- Parameters :
Variables Type Optional defaults Description size tuple ○ full-
screen화면 크기, (width, height) 순으로 입력 flags ○ full-
screen추가 옵션 모음, | (파이프 문자)를 사용하여 여러 옵션 결합하여 사용 가능 depth int ○ fit to pc 색상에 사용할 비트 수
- 일반적으로 명시 하지 않음. 명시하지 않으면 system 에 최적화된 비트 수를 자동으로 셋팅함.display int ○ 0 display 옵션. 0은 pygame이 실행되는 시스템의 기본 display를 의미한다. vsync int ○ 0 1로 셋팅시 vertical sync된 display 생성.
하지만 실행되는 시스템 하드웨어와 드러이버 구성에 따라 실행되지 않을 수 있음.
flags값에 pygame.OPENGL 또는 pygame.SCALED 설정되어야만 작동함. - return :
Variables Type Description Surface Surface 셋팅한 옵션 값에 맞는 Surface 반환 - flags 옵션
Signature Description pygame.FULLSCREEN pygame.DOUBLEBUF pygame.HWSURFACE pygame.OPENGL pygame.RESIZABLE pygame.NOFRAME pygame.SCALED pygame.SHOWN pygame.HIDDEN
>> set_caption
- Purpose : 가장 최근에 생성된 window의 caption 셋팅
- Signature : set_caption(title, icontitle=None)
- Parameters :
Variables Type Optional defaults Description title str X caption 내용 icontitle ○ None icon title
>> flip
- Purpose : 전체 display Surface를 화면에 업데이트 한다.
- Signature : flip()
- Parameters :
- return :
- display의 flags가 특정 모드로 셋팅 되어 있을때를 제외하고 단순 업데이트를 진행 한다. 만약, flags가 HWSURFACE 와 DOUBLEBUF로 셋팅 되어 있다면 Vertical Retrace를 기다렸다가 Surface를 swap(교체) 한다. flags가 OPENGL 이라면 GL의 Buffer Swap 을 실행 한다.
■ time
>> Clock
- Purpose : 시간을 추적할 수 있는(time tracking) 할 수 일도록 해주는 Clock 객체 생성
- Signature : Clock()
- Parameters :
- return :
Variables Type Description Clock Clock Clock 객체 - 아래 Clock 객체의 함수의 상세 사항은 아래 clock 태그 참조
■ clock
>> tick
- Purpose : Clock 객체 업데이트. 보통 한 프레임에서 다음 프레임을 호출할때 몇 밀리초가 경과했는지 계산할 때 사용됩니다.
- Signature : tick(framerate=0)
- Parameters :
Variables Type Optional defaults Description framerate int ○ None 값을 지정할 경우 초당 주어진 틱보다 느리게 실행되도록 합니다. 인수로 들어온 정수 만큼 초당 실행 될수 있는 프레임 수를 제한 합니다.
ex) tick(40) -> 1초당 40프레임 이하로 실행 - return :
Variables Type Description milliseconds int 이전 호출 이후 경과된 밀리초 반환
>> get_fps
- Purpose : clock 객체의 프레임 속도를 계산하여 반환합니다.
- Signature : get_fps()
- Parameters :
- return :
Variables Type Description fps float tick()의 마지막 10개의 호출을 평균하여 계산된 초당 프레임 수를 반환합니다.
■ event
pygame에서는 event que를 통해 모든 event를 메시징 처리하는데 이 대기열을 관리하는데 도움이 되는 모듈이 아래에 있는 모듈 들이다. event que는 보유할 수 있는 event 수에 대하 제한이 있고 표준 SDL 1.2 기준으로 128개라고 한다.
>> Event Type
- Purpose : pygame에서 지원하는 Event type.
- Variables:
Signature Description QUIT ACTIVEEVENT KEYDOWN KEYUP MOUSEMOTION MOUSEBUTTONUP MOUSEBUTTONDOWN JOYAXISMOTION JOYBALLMOTION JOYHATMOTION JOYBUTTONUP JOYBUTTONDOWN VIDEORESIZE VIDEOEXPOSE USEREVENT - pygame 버전에 따라 event는 추가/삭제 될 수 있다.
>> pump
- Purpose : 내부적으로 파이게임 이벤트 핸들러를 처리한다. system에서는 너무 오랫동안 event que 를 호출 하지 않으면 프로그램이 잠겼다고 판단하는데 이를 방지하기 위해 내부적으로
- Signature : pump()
- Parameters :
- return :
- system에서는 너무 오랫동안 event que 를 호출 하지 않으면(상호작용하지 않으면) 프로그램이 잠겼다고 판단하는데 이를 방지하기 위해 내부적으로 기본 창을 다시 업데이트 하거나 system에 응답해주는 일을 한다.
- event를 일관적으로 계속 처리할 경우 해당 함수를 호출 할 필요는 없다.
- 이 함수는 pygame.display로 initialize된 스레드 안에서 호출되어야 한다.
>> get
- Purpose : 큐(대기열)에서 event를 가져와 리스트 형태로 반환하고 가져온 이벤트는 큐에서 삭제한다.
- Signature : get(eventtype=None, pump=True)
- Parameters :
Variables Type Optional defaults Description eventtype event
-Type○ None 값을 지정하지 않으면 현재 큐에 쌓인 모든 event를 가져온다. 하지만 값을 지정하면 해당하는 event만 반환된다.
* event를 지정하여 가져 올때의 주의할 점은 사용하지 않는 event는 삭제 되지 못하고 que에 남아 있다는 것이다.pump bool ○ False True를 지정할 경우 pump() 가 자동으로 호출 된다. - return :
Variables Type Description EventList list
[Event]현재 event que 에 쌓인 이벤트들을 리스트 형태로 반환 한다.
'Python > Library' 카테고리의 다른 글
[Python][Library] pyopengl (0) | 2021.10.10 |
---|---|
[Python][Library] Intro (0) | 2021.10.10 |