본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 26장(pygame_01, import, display, set_caption, time, update)

by MRG 2021. 3. 25.
728x90
반응형

▣ 안녕하세요 ^^ 
저번장에 이어서 이번에도 파이썬으로 게임을 만들어보도록 하겠습니다.
아무래도 좀 더 심화적으로 게임을 만들려면 pygame을 사용하는 게 좋을 거 같아
tkinter이 아닌 pygame으로 만들어보도록 하겠습니다.

 

www.pygame.org/docs/ref/display.html

 

pygame.display — pygame v2.0.1.dev1 documentation

Change whether screensavers should be allowed whilst the app is running. The default is False. By default pygame does not allow the screensaver during game play. It is possible to influence the default value via the environment variable SDL_HINT_VIDEO_ALLO

www.pygame.org

▣ pygame 메뉴얼을 보면서 함께 공부하도록 하겠습니다.
저도 모든 모듈과 기능을 외운 건 아니라 여러분들도 pygame 매뉴얼을 참고하시면서
만들고 싶은 게임을 만들어가시면 좋을꺼 같습니다. 
코딩은 정답이 없으니깐요 ^^
최대한 쉽게 공부하도록 하겠습니다.

 

▣ 먼저 윈도우 검색에서 cmd라고 검색을 하시면 명령 프로토콜이 나옵니다.
여기서 파이썬을 먼저 설치하도록 하겠습니다.
pip install pygame이라고 작성하신 다음에 엔터를 누르면 자동으로 설치되는 걸 확인할 수 있습니다.
혹시 파이썬이 설치가 안되어 있다면 파이썬을 설치를 한 다음에 설치하시면 됩니다. 
그리고 설치가 잘 되었습니다. 노란색문구가 나오는데 이렇게 나오면 설치가 된 거라고 생각하시면 됩니다. 


▣ 여기서 중요한건 설치되었을 때 설치가 된 python 버전을 잘 보셔야 합니다. 
그런 다음에 저는 비주얼코드를 통해서 진행하도록 하겠습니다. 

 

▣ 이렇게 비주얼코드에서비주얼 코드에서 아까 버전과 현재 비주얼 코드에서 설정되어 있는 버전이 맞는지 확인해주시고
이미지처럼 버전을 맞춰주세요.
이렇게 말씀드린건 보통 파이썬을 여러 개 설치하시는 경우가 있습니다.
버전이 새로 나오다보니 여러 가지 버전을 설치하시는 경우가 있어서 이렇게 버전을 맞추지 않으면
pygame을 import할 때 꼬일 수가 있어서 말씀드립니다. 
그럼 이제 완료가 되었다면 간단하게 pygame을 어떻게 사용하지는 공부해보도록 하겠습니다.
tkinter와 비슷합니다. 

 

▣ import pygame으로 모듈을 불러와 주시고요.
game_size라는 리스트로 화면에 사이즈를 정의해줍니다. 
그리고 screen이라는 함수 안에 pygame.display.set_mode(game_size)을 넣어서 화면에 해상도를 설정해줍니다. 
직접 set_mode()에 매개변수 값을 지정해줘도 되지만 나중에 화면에 크기를 조절할 수 있는 상황이 있을 수 있기 
때문에 리스트로 만들어주었습니다. 


▣ screen 화면을 변수 선언한 이유도 저희가 tkinter에서 한 것처럼 pygame에 display를 screen이라는 변수로 
쉽게 접근하고 사용하기 위함입니다. 
set_caption() 함수로 타이틀 이름까지 정해주시고,
clock = pygame.time.Clock()을 지정해줍니다. 이건 프레임을 제한하기 위함입니다. 
자세한 건 

 

www.pygame.org/docs/ref/time.html

 

pygame.time — pygame v2.0.1.dev1 documentation

Set an event type to appear on the event queue every given number of milliseconds. The first event will not appear until the amount of time has passed. Every event type can have a separate timer attached to it. It is best to use the value between pygame.US

www.pygame.org

▣ 매뉴얼을 참고하시면 좋을 거 같습니다. 
그럼 이대로 실행을 해보겠습니다.
화면이 나오지만 바로 꺼지는 걸 확인할 수 있습니다.
왜 그럴까요? 
프로그램은 순차적으로 번역해서 작동하고
결과를 보여줍니다. 
그리고 속도가 아주 빠릅니다. 
우리가 이대로 기다려줘, 화면을 계속 보여줘
이런 명령을 주지 않았기 때문에 순차적으로 진행을 하고 프로그램이 끝나는 겁니다.
혹시 지금 제가 이야기한 부분이 이해가 안 되시는 분은 
제 블로그 스크래치 챕터를 공부하시면 됩니다.  

 

▣ 그렇기 때문에 계속 프로그램을 작동하게 하는 메인 함수를 밑에다 만들어두겠습니다.
이건 나중에 def 함수를 따로 작성하도록 하겠습니다. 


▣ clock.tick(30) 함수는 30 프레임으로 제한을 하게 만들었습니다. 
매뉴얼에서 나오는 것처럼 30 프레임이라는 건 1초에 30번을 실행한다라는 의미로 생각하시면 됩니다. 
그래서 요즘 게임들처럼 60 프레임 120 프레임이 더 좋다는 의미가 더 많은 양을 1초에 더 보여주기 때문에
부드러워 보이는 것입니다. 프레임에 대한 설명은 다른 블로그를 참고하시면 좋을 거 같고
우선 저희가 제한을 하고 
screen.fill()을 이용해서 색을 바꾸도록 하겠습니다.
set_color라는 변수를 통해서 RGB 값을 지정해주고 지정해주었습니다. 


▣ RGB 값은 여기 홈페이지를 참고하시면 됩니다. 

www.w3schools.com/colors/colors_rgb.asp

 

Colors RGB

Colors RGB RGB Colors RGB color values are supported in all browsers. An RGB color value is specified with: rgb(red, green, blue). Each parameter (red, green, and blue) defines the intensity of the color as an integer between 0 and 255. For example, rgb(0,

www.w3schools.com

▣ 그리고 pygame.display.update() 함수를 통해서
화면을 계속 업데이트를 합니다.
이걸 해야지 프레임마다 화면이 바뀌는 걸 확인할 수 있습니다. 

 

▣ 그럼 이렇게 화면이 잘 나오는 걸 확인할 수 있습니다.
그런데 X를 눌러도 안 꺼지는 걸 확인할 수 있습니다.
이건 저희가 생각하는 것보다 프로그램 속도가 바르기 때문에
콘솔에서 Ctrl+C 를 누르면 프로그램을 강제 종료할 수 있습니다.


▣ 이렇게 오늘은 pygame 모듈을 이용해서 간단하게 
화면을 표현하고 색을 바꾸는 것을 간단하게 공부해보았습니다. 
꼭 다른 색으로 화면을 채워보시고 
pygame매뉴얼 홈페이지를 확인하셔서 꼭 읽어보시면서
새로운 도전을 해보세요~~
그럼 다음장에서 뵙겠습니다. 


▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!!

728x90
반응형

댓글