diff --git a/README.md b/README.md index 7ce54ce591b919ae5f48205ee2622c580f504a7a..018f188fc4b72c4d510316be8454b02f46e457a2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,106 @@ # 기말과제 +게임제작 입문으로 많이 사용되는 pygame의 기본 구조와 사용법에 대해 알아보겠습니다. +Pygame은 비디오 게임 작성 용으로 설계된 크로스 플랫폼 Python 모듈 세트입니다. +여기에는 Python 프로그래밍 언어와 함께 사용하도록 설계된 컴퓨터 그래픽 및 사운드 라이브러리가 포함됩니다. + + + +<시작> +Pygame이 깔려있지않다면 pip install pygame으로 설치해줍니다. +우선 pygame을 사용하려면 다음과 같은 구조로 사용해야합니다. + +1. 게임 초기화 +2. 게임창 옵션설정 +3. 게임 내 필요한 설정 +4. 메인이벤트 ->fps설정, 입력 감지, 화면그리기, 업데이트 +5. 게임종료 + +<1> 게임 초기화 +1.import로 pygame을 선언해준다. +``` +import pygame + +import pygame as pg +``` + + +pygame모듈을 사용하려면 당연하게도 모듈을 import해줘야합니다. +pygame을 pg로 바꾸어 import pygame as pg같은 형태호 +줄여서 표현하는 것이 편리합니다. +pygame을 초기화한다. +`pygame.init()` + + +<2> 게임 창 옵션 설정 +`screen=pygame.display.set_mode([300,400])` + +screen이라는 변수를 선언해줍니다. +가로 300 세로 400의 창을 생성하는 것을 의미합니다. +``` +title= ”game1” +pygame.display.set_caption(title) +``` + +원하는 창의 이름도 정해줍니다. + +<3> 게임 내 필요한 설정 +3.pygame에서 사용할 전역 변수들을 선언한다. +pygame에서 기본이 될 여러가지 변수들을 선언하면 +편리합니다. +``` +go=True +clock=pygame.time.Clock() +``` + +루프의 반복을 위한 go변수를 만들고 +화면의 Frame per Second를 정해줍니다. +clock변수를 이용해 정할 수 있습니다. +``` +color1={0,0,0} +color2={255,255,255} +k=0 +``` + +색깔을 RGB값으로 저장해둡니다. (black,white로 저장하였습니다.) + +<4> 메인이벤트 +pygame의 메인루프를 작성한다. +이제 게임 실행동안 발생한 이벤트 설정과 사용자의 게임 알고리즘을 작성 합시다. +일단 가벼운 예제로 시간이 지나면서 1초마다 배경 색깔이 바뀌는 알고리즘을 짜보겠습니다. +``` +while go: + clock.tick(20) +``` +go가True인 동안 반복합니다. +초당 화면이 몇번이 바뀔지 설정할 수 있는데 1초당 5번 바뀌도록 설정했습니다. +프레임이 너무 높으면 제대로 출력을 못할 수 있으니 주의합니다. + ` for event in pygame.event.get(): `#실시간으로 행동을 받아옵니다. 이는 리스트형태로 저장됩니다. +이유는 한번에 여러가지의 이벤트가 들어올 수 있기 때문입니다. +게임 중간에 발생한 이벤트를 받아서 인덱스로 사용합니다. +` if event.type == pygame.QUIT:` + +만일 발생한 이벤트가 pygame.QUIT이라면 +` go=False` +go를False로 바꾸어 반복문을 멈춥니다. +``` + k+=1 + if k%2=0: + screen.fill(color1) + else: + screen.fill(color2) +``` +원하는 배경색깔을 고를 수 있습니다. + + +` pygame.display.flip()` + +pygame을 실행하려면 메인 루프의 마지막에는 반드시 이 문장을 적어 주어야 합니다. +<5> 게임종료 +`pygame.quit()` +pygame을 종료시킵니다. + + + + +이렇게 pygame의 기본구조를 완성하였습니다