본문 바로가기

Python/Frameworks.Libraries

[파이썬 게임 예제] pygame으로 벽돌깨기 만들기

pygame 모듈 자체의 사용법이나 모듈 자체에 대한 강좌가 아닌,

pygame 모듈을 이용해 만든 게임 예제인 벽돌깨기에 대해 소개하는 글 입니다.

벽돌깨기를 어떻게 만들 지 막막하신 분들께 추천





●  python3 및  pygame install 하는 법


여러가지 방법이 있겠지만 제가 이번에 새 노트북을 사면서 linux Ubuntu를 깔자마자 python3를 깔았을 때 기준으로 알려드릴게요.

python3 나 python2나 pygame으로 게임을 만드는 것 자체에서는 차이는 없는 것 같아요.

python2로는 깔고 쓰고 하는 게 정말 쉬우니 따로 설명 안 하겠는데,

python3는 제가 좀 버벅댔어서 혹시 도움이 될까 싶어 올려요.


sudo apt install python3

sudo apt install python3-pip

python3 -m pip install pygame

으로 python3 설치, python3 의 pip설치, pygame 설치 순서대로 해주시면 될 것 같습니다.

    >>> python

을 통해 python 명령어로 실행되는 파이썬 버전을 볼 수 있고 

( 윈도우로는 그냥 파이썬3이 뜨더라고요 우분투는 파이썬2가 뜨고 )

    >>> python3

을 통해 python3 명령어로 실행되는 파이썬 버전을 볼 수 있습니다. ( 윈도우에선 명령어로 못 알아듣더군요)


    >>> python3   

로 파이썬 쉘 실행

    >>> import pygame

을 입력했을 때 오류가 나지 않으면 올바르게 pygame이 설치된 것입니다.


웬만한 reference는 역시나 공식홈페이지( https://www.pygame.org/docs/ )에 잘 나와있으니 생략하겠습니다.

pygame.init() 이나

pygame.display.set_mode((x,y))등은 워낙 다른 블로그 및 유튜브에도 정보가 많으니 역시 생략합니다. 혹시 모르시겠으면 댓글로 ㅎㅎ..


그냥 python3 pygame 설치법이랑 예제 영상, 구현 방식, 코드 정도만 포스팅할 계획이었어서 이 정도에서 간단히 마무리할게요. ( 근데 진짜 워낙 다른 블로그에 잘 써져있음 기본적인 내용은 ㅜㅜ )



●  Source Code


https://github.com/umi0410/brickout 에 올려놓았으니

벽돌깨기를 만들어보고싶은데 잘 안되시는 분들은 잠시 참고해보세요.

( 일부 버그가 존재할 수는 있음 ...ㅎㅎ )



●  벽돌 튕기는 각도 구현 힌트


이건 코딩이라기보단 수학 같긴한데

그냥 옆이나 위에서 대놓고 튕기는 공은 진행방향의 부호만 바꿔주면 됩니다.

하지만 제 개인적으로는 대각선에서 튕기는 공은 벡터합을 통해 진행방향의 벡터를 구해줘야한다고 생각합니다. 좀 그럴싸하게 공이 튕기기 위해서는 말이죠.

잘못된 것 같아 입사벡터와 반사벡터를 이용해 구현하려했으나

이 또한 오류가 발생해 현재 중단 중... 혹시 좋은 아이디어가 있으신 분은 댓글로 좀 알려주세요 ㅜㅜ