티스토리 뷰
다음에는 입력받는 부분을 생각해봅시다.
필자도 pygame 을 많이 아는것은 아닙니다. 예전에도 게임 만들때에 WinAPI 로 만들어 본 경험은 있는데
pygame 은 사실 파이썬으로 만들려고 보니까 있던거라서 가져다 쓰기로 했습니다.
그래서 이해가 깊지도 않아서 그냥 쓸부분만 가져다가 쓰기로 했습니다.
입력을 받는 부분인데 마우스 왼쪽 버튼만 16퍼즐에서는 사용할 예정이라 왼쪽버튼 받는 방법만 알아봅시다
while 문 안에 for event in pygame.event.get() :
을 꼭 사용해줘야하는데 이벤트가 들어오게 되면 event 에 담아서 이벤트를 해석해줍니다.
event.type == MOSEBUTTONDOWN 을 쓰게 되면 마우스 버튼이 눌렸을 때 입니다.
그리고 왼쪽 버튼은 1을 사용 한다 즉 event.button == 1 이 들어오면 되는데
마우스 버튼이 눌렸고 그것이 1번이다 가 되므로
(event.type == MOUSEBUTTONDOWN) && (event.button == 1) 이 되겠네요.
추가적으로 li = event.pos 코드를 넣어서
li 내부에 이 이벤트가 일어난 장소를 확인 할 수 있습니다.
우선은 이것만으로도 16퍼즐의 모든것을 개발 할 수 있습니다. 필요한 사양이 있으면 pygame 공식 홈페이지가 에가면 모든것이 친절하게 나와있습니다만 영어라서 쭈글....
각설하고 불가능하지는 않습니다.
마지막으로 게임에는 프레임이라는것이 있습니다. 너무 빠르게 갱신되게 하지 않기 위해서
게임판을 생성하기 전 clock 을 생성해주고
clock = pygame.time.Clock() '''clock 을 생성하는 코드입니다'''
clock.tick(30)
을 루프에 마지막에 추가하시면 된다고 생각하세요. 저건 30프레임보다 빠를경우 30프레임으로 고정시킨다는겁니다.
느린경우에는 while 문 자체가 늦게 돌아가는데 저게 실행이 될까요? 사실 안뜯어봐서 잘 모르긴 합니다 그래도 버그가 발생할 요지가 있는 생각될 수 있는경우가 있긴한데 범위를 너무 크게 벗어납니다.
이제 배웠던 pygame 라이브러리의 기능들을 조립해서 16퍼즐을 완성시켜볼까요?
아래 사진은 필자가 최종적으로 완성한 16퍼즐의 모습입니다. 별로 재미는 없어보이지만, 첫 걸음이 중요하다고 생각해요.
참고로 말씀드리자면 위 퍼즐은 지금 맞출 수 없는 상태입니다. 추후에 개선 할 수 있으면 개선하는것까지 작성해보고 싶지만.
다른 게임을 만드는것도 끌리네요.
'Game with Python' 카테고리의 다른 글
16퍼즐 제작 - (8) (0) | 2017.06.16 |
---|---|
16퍼즐 제작 - (7) (0) | 2017.06.16 |
pygame에 대해서 간단히 알아봅시다. -(1) (0) | 2017.06.15 |
16퍼즐 제작 - (6) (0) | 2017.06.13 |
16퍼즐 제작 - (5) (0) | 2017.06.12 |