참고 도서 : "Python and Pygame" 장선호 지음 도서출판 그린.
pygame의 설치
Pygame을 설치하는 가장 좋은 방법은 pip 도구를 사용하는 것이다.
python3 -m pip install -U pygame
pygame이 잘 설치되었는지는 다음 예제의 작동 여부로 확인할 수 있다.
python3 -m pygame.examples.aliens
introduction
pygame의 개발은 2000년 10월에 시작되었으며 6개월 후에 pygame 버전 1.0이 출시되었다.
Pygame은 Python과 SDL(Simple DirectMedia Layer)을 결합한 게임 개발 모듈로, 다양한 플랫폼에서 실행될 수 있으며 게임 제작에 필요한 도형, 이벤트, 음악 등을 지원합니다. SDL은 그래픽, 사운드, 입력 장치에 접근할 수 있는 C 프레임워크이다.
파이게임 라이브러리
pygame modules overview
모듈 |
설명 |
|
모듈 |
설명 |
pygame |
파이게임 패키지 |
|
camera |
카메라 사용 |
color |
색 표현 |
|
cursors |
커서 제어 |
display |
디스플레이 창 또는 화면 제어 |
|
draw |
도형을 그리기 |
event |
이벤트 및 이벤트 대기열 관리 |
|
font |
TrueType 글꼴 생성 및 렌더링 |
image |
이미지 저장 및 로드 |
|
joystick |
조이스틱 장치 관리 |
key |
키보드 관리 |
|
mouse |
마우스 관리 |
locals |
파이게임의 상수 |
|
music |
오디오 제어 |
sprite |
게임 오브젝트 |
|
surface |
이미지 표시 |
time |
타이밍 제어 |
|
transform |
이미지 크기 조정, 회전 및 뒤집기 |
pygame 모듈
모듈 |
설명 |
|
모듈 |
설명 |
pygame.init() |
초기화 |
|
pygame.quit() |
초기화 해제 |
pygame.error |
SDL 작업이 실패하는 경우 발생 |
|
pygame.vesion |
버젼 확인 |
pygame.encode_string() |
유니코드인 경우 인코딩, 바이트이면 변경되지 않은 상태로 반환 |
|
pygame.get_error() |
오류 메세지 제공 |
pygame.get_init() |
초기화되어 있는 경우 True 반환 |
|
pygame.get_sdl_byteorder() |
SDL라이브러리 순서 반환 |
pygame.get_sdl_version() |
SDL 라이브러리 버전 번호 반환 |
|
pygame.set_error() |
오류 메세지 설정 |
camera 모듈
모듈 |
설명 |
|
모듈 |
설명 |
camera.Camera |
카메라 로드 |
|
camera.Camera.get_controls() |
설정된 제어값 반환 |
camera.Camera.get_image() |
이미지를 RGB로 반환 |
|
camera.Camera.get_raw() |
이미지를 기본 픽셀 형식의 문자열 반환 |
camera.Camera.get_size() |
이미지 크기 반환 |
|
camera.Camera.query_image() |
이미지를 가져올 준비 여부 반환 |
camera.Camera.set_controls() |
카메라 설정 변경 |
|
camera.Camera.start() |
이미지를 버퍼에 기록 |
camera.Camera.stop() |
녹화 중지 |
|
camera.colorspace() |
색 변환 |
camera.list_cameras() |
카메라 목록 반환 |
|
|
|
color 모듈
모듈 |
설명 |
|
모듈 |
설명 |
Color.a |
알파값 반환 |
|
Color.r |
빨간색 값 반환 |
Color.g |
녹색값 반환 |
|
Color.b |
파란색 값 반환 |
Color.cmy |
CMY값 반환 |
|
Color.correct_gamma() |
감마 값 적용 |
Color.hsla |
HSLA값 설정/ 반환 |
|
Color.hsva |
HSVA값 설정/반환 |
Color.i1i2i3 |
i1i2i3 값 설정/반환 |
|
Color.lerp() |
색상에 선형보간 적용 |
Color.normalize() |
색상에 표준화된 RGBA값 반환 |
|
Color.set_length() |
색상 요소수를 설정 |
cursors 모듈
모듈 |
설명 |
|
모듈 |
설명 |
pygame.mouse.set_cursor |
커서 설정(1) |
|
pygame.cursors.compile |
문자열 커서 설정(2) |
(1) pygame.cursors.[arrow, diamond, broken_x, tri_left, tri_right]
(2) pygame.cursors.[thickarrow_strings, sizer_x_strings, sizer_y_strings, sizer_xy_strings]
[ ]안의 하나의 값을 선택한다.
display 모듈
모듈 |
설명 |
|
모듈 |
설명 |
display.init() |
초기화 |
|
display.quit() |
해제 |
display.set_mode() |
표면 생성 |
|
display.set_caption() |
제목 설정 |
display.flip() |
전체 내용 업데이트 |
|
display.update() |
화면 일부만 업데이트 |
display.get_active() |
화면 활성화 |
|
display.get_caption() |
창 제목 반환 |
display.get_driver() |
화면 백엔드 이름 반환 |
|
display.get_init() |
화면 모듈 초기화 |
display.get_num_displays() |
화면 수 반환 |
|
display.get_surface() |
창에 대한 참조 반환 |
display.get_window_size() |
창크기 반환 |
|
display.get_wm_info() |
창 정보 반환 |
display.gl_get_attribute() |
OpenGL 플래그 값 반환 |
|
display.gl_set_attribute() |
OpenGL 플래그 값 설정 |
display.iconify() |
화면을 아이콘화 |
|
display.Info() |
화면 정보 반환 |
display.list_modes() |
화면 목록 반환 |
|
display.mode_ok() |
색상 깊이 선택 |
display.set_icon() |
런타임 아이콘 설정 |
|
display.set_palette() |
색상 팔레트 변경 |
display.toggle_fullscreen() |
화면 창 변경 |
|
|
|
draw 모듈
모듈 |
설명 |
|
모듈 |
설명 |
draw.aaline() |
직선 표시 |
|
draw.aalines() |
직선을 연속적으로 표시 |
draw.arc() |
호 그리기 |
|
draw.circle() |
원 그리기 |
draw.ellipse() |
타원 그리기 |
|
draw.line() |
직선 그리기 |
draw.lines() |
연속적인 직선 그리기 |
|
draw.polygon() |
다각형 그리기 |
draw.rect() |
사각형 그리기 |
|
|
|
font 모듈
모듈 |
설명 |
|
모듈 |
설명 |
font.Font |
폰트 객체 생성 |
|
font.init() |
폰트 모듈 초기화 |
font.quit() |
폰트 모듈 해제 |
|
font.SysFont() |
시스템 폰트 객체 생성 |
font.Font.render() |
폰트를 생성 |
|
font.Font.get_ascent() |
폰트의 높이를 픽셀 단위로 반환 |
font.Font.set_bold() |
폰트의 굵은 모드 세팅 |
|
font.Font.get_bold() |
폰트가 굵은 모드면 참 반환 |
font.Font.get_descent() |
글꼴 아래쪽까지의 픽셀 반환 |
|
font.Font.get_height() |
폰트 높이의 픽셀 단위 반환 |
font.Font.set_italic() |
폰트 기울임꼴로 설정 |
|
font.Font.get_italic() |
폰트의 기울임꼴 모드이면 참 반환 |
font.Font.get_linesize() |
직선 그리기 |
|
font.Font.get_underline() |
문장의 높이를 픽셀로 반환 |
font.Font.metrics() |
진행 오프셋이 포함된 투플 반환 |
|
font.Font.set_underline() |
텍스트 밑줄을 표시 |
font.Font.size() |
폰트 크기 반환 |
|
font.get_default_font() |
시스템 글꼴 이름 반환 |
font.get_fonts() |
사용 가능한 글꼴 목록 반환 |
|
font.get_init() |
폰트 모듈 초기화 반환 |
font.match_font() |
특정 글꼴의 전체 경로 반환 |
|
|
|
image 모듈
모듈 |
설명 |
|
모듈 |
설명 |
image.frombuffer() |
버퍼로부터 새로운 표면 생성 |
|
image.fromstring() |
문자열로부터 새로운 표면 생성 |
image.get_extended() |
확장된 이미지 형식이면 True 반환 |
|
image.load() |
이미지 로드 |
image.save() |
이미지를 저장 |
|
image.tostring() |
문자열 버퍼에서 이미지 전송 |
key 모듈
모듈 |
설명 |
|
모듈 |
설명 |
key.get_focused() |
키보드 포커스가 있는 경우 참 반환 |
|
key.get_mods() |
비트 마스크의 정수 반환 |
key.get_pressed() |
키버튼이 눌린 경우 참 반환 |
|
key.get_repeat() |
키 누르고 있는 경우 키 다운 이벤트가 반복적으로 발생하지 않음 |
key.name() |
키보드 버튼 id 반환 |
|
key.set_mods() |
눌린 키 설정 |
key.set_repeat() |
여러개의 키눌림 이벤트 생성 |
|
key.set_text_input_rect() |
입력에 사용되는 사각형 설정 |
locals 모듈
mouse 모듈
모듈 |
설명 |
|
모듈 |
설명 |
mouse.set_cursor() |
마우스 커서 이미지 설정 |
|
mouse.get_cursor() |
마우스 커서 이미지 반환 |
mouse.get_focused() |
마우스 이벤트가 활성화된 경우 참 반환 |
|
mouse.set_pos() |
마우스 위치 설정 |
mouse.get_pos() |
마우스 위치 반환 |
|
mouse.get_pressed() |
마우스 버튼 값 목록 반환 |
mouse.get_rel() |
마우스 움직인 거리 반환 |
|
mouse.set_visible() |
마우스 커서를 숨기거나 표시 |
mouse.get_visible() |
마우스 커서의 보임 상태 반환 |
|
|
|
mixer.music 모듈
모듈 |
설명 |
|
모듈 |
설명 |
mixer.music.load() |
음악 파일 객체 로드 |
|
mixer.music.play() |
로드된 음악 재생 시작 |
mixer.music.stop() |
음악 재생 중지 |
|
mixer.music.pause() |
음악 재생 일시정지 |
mixer.music.unpause() |
음악 재생 일시정지 해제 |
|
mixer.music.fadeout() |
음악이 점점 줄어들다 재생 중지 |
mixer.music.get_busy() |
재생중이면 참 반환 |
|
mixer.music.get_endevent() |
음악 재생이 끝나면 이벤트 유형 반환 |
mixer.music.set_pos() |
재생이 시작될 위치 설정 |
|
mixer.music.get_pos() |
재생이 시작될 위치 반환 |
mixer.music.set_volume() |
재생 볼륨 설정 |
|
mixer.music.get_volume() |
재생 볼륨 반환 |
mixer.music.queue() |
음악 파일을 로드하고 큐에 삽입 |
|
mixer.music.rewind() |
현재 음악의 처음으로 재설정 |
mixer.music.unload() |
음악을 언로드 |
|
|
|
Rect 모듈
모듈 |
설명 |
|
모듈 |
설명 |
Rect.clamp() |
새로운 rect객체 반환 |
|
Rect.clamp_ip() |
현 위치에서 클램프 메서드 실행 |
Rect.clip() |
rect객체에 들어가도록 새 rect객체 반환 |
|
Rect.collidedict() |
호출하는 rect객체와 교차하는 키와 값을 반환 |
Rect.collidedictall() |
호출 rect객체와 교차하는 모든 키와 값 목록 반환 |
|
Rect.collidelist() |
rect가 일련의 rect와 충돌한 첫번째 충돌 색인 반환 |
Rect.collidelistall() |
rect와 충돌하는 모든 인덱스 목록 반환 |
|
Rect.collidepoint() |
점이 rect안이면 참 반환 |
Rect.colliderect() |
rect가 일부 겹치면 참 반환 |
|
Rect.contains() |
rect객체가 호출한 rect객체 내부에 포함되면 참 반환 |
Rect.copy() |
원본과 같은 새로운 객체 반환 |
|
Rect.fit() |
다른 rect객체에 맞춰 조정된 새로운 객체 반환 |
Rect.inflate() |
객체 중심으로부터 확대/축소하여 새로운 객체 반환 |
|
Rect.inflate_ip() |
현 위치에서 inflate메서드 실행 |
Rect.move() |
지정된 오프셋 만큼 이동 |
|
Rect.move_ip() |
현 위치에서 move메서드 실행 |
Rect.normalize() |
값이 음수이면 뒤집어 표시 |
|
Rect.union() |
두 rect객체의 영역을 덮는 새로운 객체 반환 |
Rect.unionall() |
여러 rect를 모두 덮는 새로운 객체 반환 |
|
Rect.unionall_ip() |
현 위치에서 unionall메서드 실행 |
Rect.union_ip() |
현 위치에서 union메서드 실행 |
|
|
|
sprite 모듈
sprite : 더 큰 배경에 삽입되는 2D 그래픽 또는 애니메이션. 배경 데이터를 변경하지 않고 화면을 가로 질러 이동할 수 있는 캐릭터.
모듈 |
설명 |
|
모듈 |
설명 |
sprite.Sprite |
게임 오브젝트의 기본 클래스 |
|
sprite.Group |
sprite객체의 컨테이너. |
sprite.DirtySprite |
sprite의 서브 클래스 |
|
sprite.LayeredDirty |
DirtySprite객체를 위해 사용 |
sprite.LayeredUpdates |
레이어를 처리하고 OrderedUpdates를 호출 |
|
sprite.RenderClear |
sprite.Group과 동일 |
sprite.RenderPlain |
sprite.Group과 동일 |
|
sprite.RenderUpdates |
sprite.Group의 파생 클래스 |
sprite.spritecollide() |
스프라이트와 충돌하는 스프라이트 반환 |
|
sprite.spritecollideany() |
스프라이트와 충돌하는 스프라이트 반환 |
sprite.collide_circle() |
원을 사용하는 두 스프라이트 충돌 감지 |
|
sprite.collide_circle_ratio() |
원을 사용하는 두 스프라이트 충돌 감지 |
sprite.groupcollide() |
두 그룹에서 충돌하는 스프라이트 검색 |
|
sprite.GroupSingle() |
|
sprite.GroupSingle() |
스프라이트 한 개만 가지는 그룹 |
|
sprite.collide_mask() |
마스크가 충돌한 첫번째 위치 반환 |
sprite.collide_rect() |
rect인 두 스프라이트 사이의 충돌 감지 |
|
sprite.collide_rect_ratio() |
두 스프라이트 사이의 충돌 감지 |
sprite.OrderedUpdates() |
스프라이트를 순서대로그린다 |
|
|
|
sprite.Sprite
모듈 |
설명 |
|
모듈 |
설명 |
.add() |
스프라이트 추가 |
|
.alive() |
스프라이트가 그룹에 속하는 경우 참 반환 |
.groups() |
스프라이트를 포함하는 그룹 목록 반환 |
|
.kill() |
모든 스프라이트 제거 |
.remove() |
스프라이트 제거 |
|
.update() |
|
sprite.Group
모듈 |
설명 |
|
모듈 |
설명 |
.add() |
그룹에 스프라이트 추가 |
|
.clear() |
스프라이트에 백그라운드 표시 |
.copy() |
동일한 그룹 생성 |
|
.draw() |
스프라이트를 표시 |
.empty() |
그룹에서 스프라이트 제거 |
|
.has() |
스프라이트 들이 그룹에 포함되면 참 반환 |
.remove() |
그룹에서 스프라이트 제거 |
|
.sprites() |
그룹의 스프라이트 목록 반환 |
.update() |
스프라이트에서 updatea메서드 호출 |
|
|
|
sprite.LayeredDirty
모듈 |
설명 |
|
모듈 |
설명 |
.change_layer() |
스프라이트 레이어 교체 |
|
.clear() |
백그라운드 사용 |
.draw() |
스프라이트 순서대로 그림 |
|
.get_clip() |
그릴 영역을 자름 |
.repaint_rect() |
영역을 다시 그림 |
|
.set_clip() |
그릴 영역을 설정 |
.set_timing_treshold() |
|
|
|
|
sprite.LayeredUpdates
모듈 |
설명 |
|
모듈 |
설명 |
.add() |
그룹에 스프라이트 추가 |
|
.change_layer() |
스프라이트 레이어 교체 |
.draw() |
스프라이트를 순서대로 그림 |
|
.get_bottom_layer() |
제일 아래에 있는 레이어 반환 |
.get_layer_of_sprite() |
현 스프라이트 레이어 반환 |
|
.get_sprite() |
그룹에서 해당 인덱스 스프라이트 반환 |
.get_sprites_at() |
해당 위치의 스프라이트 목록 반환 |
|
.get_sprites_from_layer() |
스프라이트를 추가한 순서대로 반환 |
.get_top_layer() |
제일 위에 있는 레이어 반환 |
|
.get_top_sprite() |
최상위 스프라이트 반환 |
.layers() |
레이어 목록을 정렬하여 반환 |
|
.move_to_back() |
스프라이트를 뒤 레이어로 이동 |
.move_to_front() |
스프라이트를 앞 레이어로 이동 |
|
.remove_sprites_of_layer() |
레어어에서 모든 스프라이트 제거 |
.sprites() |
스프라이트 목록 반환 |
|
.switch_layer() |
레이어 사이에서 스프라이트 교환 |
sprite.RenderUpdates
모듈 |
설명 |
|
모듈 |
설명 |
.draw() |
스프라이트 이미지를 그림 |
|
|
|
surface 모듈
모듈 |
설명 |
|
모듈 |
설명 |
Surface.blit() |
표면을 그려 표시 |
|
Surface.blits() |
표면을 그려 표시 |
Surface.convert() |
픽셀 형식을 교체하고 새 표면을 생성 |
|
Surface.convert_alpha() |
알파를 포함한 이미지 픽셀 형식 변경 |
Surface.copy() |
새로운 표면 생성 |
|
Surface.fill() |
설정한 색으로 채워 표시 |
Surface.get_abs_offset() |
하위 표면의 절대 위치 반환 |
|
Surface.get_abs_parent() |
최상위 표면의 절대 위치 반환 |
Surface.get_alpha() |
알파값 반환 |
|
Surface.get_at() |
RGBA 색상의 복사본 반환 |
Surface.get_at_mapped() |
색상 값 반환 |
|
Surface.get_bitsize() |
비트 심도 반환 |
Surface.get_bounding_rect() |
사각형 영역 반환 |
|
Surface.get_buffer() |
버퍼 객체 반환 |
Surface.get_bytesize() |
픽셀의 바이트 반환 |
|
Surface.get_clip() |
클리핑 영역 반환 |
Surface.get_colorkey() |
색상키 반환 |
|
Surface.get_flags() |
표면에서 사용된 플레그 반환 |
Surface.get_height() |
표면의 높이 반환 |
|
Surface.get_locked() |
현재 표면이 잠겨있으면 참 반환 |
Surface.get_locks() |
표면 잠김 목록 반환 |
|
Surface.get_losses() |
색상에서 제거 |
Surface.get_offset() |
오프셋 위치 반환 |
|
Surface.get_palette() |
8비트 색상 요소 목록 반환 |
Surface.get_palette_at() |
표면 팔페트에서 색값 반환 |
|
Surface.get_parent() |
부모 표면 반환 |
Surface.get_pitch() |
표면의 각 행을 구분하는 바이트 수 반환 |
|
Surface.get_rect() |
표면의 rect영역 반환 |
Surface.get_size() |
표면 크기 반환 |
|
Surface.get_width() |
표면 너비 반환 |
Surface.scroll |
이미지를 제자리로 이동 |
|
Surface.set_clip |
클리핑 영역 설정 |
Surface.set_palette() |
8비트 색상 팔레트 설정 |
|
|
|
time 모듈
모듈 |
설명 |
|
모듈 |
설명 |
time.Clock |
시간 객체 생성 |
|
time.Clock.get_fps() |
프레이레이트 계산 |
time.Clock.get_rawtime() |
tick에서 실제 사용된 시간 반환 |
|
time.Clock.get_time() |
두 tick사이의 시간 반환 |
time.Clock.tick() |
이전 호출 이후의 경과 시간을 반환 |
|
time.delay() |
시간동안 일시정지 |
time.get_ticks() |
초기화 이후의 시간 반환 |
|
time.set_timer() |
주어진 시간마다 이벤트 유형이 나타나도록 설정 |
time.wait() |
일시 중지 |
|
|
|
모듈 |
설명 |
|
모듈 |
설명 |
transform.average_color() |
평균 color를 반환 |
|
transform.chop() |
이미지 일부 추출 |
transform.flip() |
화면을 수평/수직으로 뒤집기 |
|
transform.rotate() |
이미지 회전 |
transform.rotozoom() |
스케일과 회전 결합 |
|
transform.scale() |
표면 크기 조정 |
로그인 하면 댓글을 쓸 수 있습니다.