기본 콘텐츠로 건너뛰기

[pygame] Cannon 게임 프로젝트 1 - 프롤로그

제작로그 1 - 프롤로그

 예전 부터 pygame 을 한번 사용해 보고 싶었습니다만...여러 이유로 진행이 안됐었는데 이번에 천천히 진행해 보고 있습니다. 

 


 현재 대략 진행중인 상태입니다. 

이 게임은 예전에 제가 8비트 Apple 컴퓨터를 구입했을때 받은 디스켓에 들어있던 게임 중 하나였는데 오래되서 정확히 기억은 안나지만 대충 기억을 되살려 비슷하게 만들어 보았습니다.

게임의 규칙은 매우 간단해서 낙하산을 타고 내려오는 적들(제 경우는 로봇군단으로 설정)을 아래의 무기(대포)로 땅에 내려오기 전에 맞추면 되는 게임입니다. 

모두 4기의 로봇이 땅에 착지하면 대포는 폭파되어 게임이 끝나고요. 대포가 있는 저 사각형 위는 한대라도 착지 하면 게임은 끝납니다.

대략적인 구현은 끝난 상태인데요. 제가 pygame 을 처음 다뤄보고, 원래 pygame 을 완전히 파악하고 진행하는게 아니라 공부 겸 해서 진행하는 프로젝트였고 그러다 보니 처음부터 치밀하게 구상해서 코딩을 하지 않았기 때문에 소스가 전혀 정리가 안되는 상태고 맘에 안듭니다만 기록을 남겨두지 않으면 또 까맣게 잊어버릴게 분명하기에 간단히 정리해 기록해 둘 생각입니다. 

다음에는 조금 나아 지겠죠. 아마도요....ㅎㅎ 

현재 로봇이나 대포의 폭파 표현등을 어떻게 할지를 고민중입니다. 이런 연출(?)은 해본적이 없어서....사운드도 좀 넣어야 되고....

댓글

이 블로그의 인기 게시물

드래곤즈 도그마 일본어 음성 패치

드래곤즈 도그마는 캡콤의 오픈월드 RPG 게임으로 액션성이 매우 뛰어난 게임입니다. 이 게임은 원래 콘솔게임이었고 일본어와 일본음성이 존재했으나, 스팀에서 판매되는 PC 판의 경우 일본어는 제외되어 있습니다. 하지만, 능력자들이 음성의 일본어 패치를 제작하여 배포하고 있습니다.   http://www.nexusmods.com/dragonsdogma/mods/108/? 제 경우는 일본어를 거의 못하지만 간단한 게임용 일본어 정도는 알아듣기에 일본어쪽이 게임에 좀더 몰입할 수 있었습니다. 그리고 개인적인 의견으로는 일본어 더빙쪽이 조금 더 잘 되어 있는것 같습니다. 영어가 더 익숙하신 분들은 반대일 수도 있겠지만요. 설치 방법은 다음과 같습니다. 1. 위의 파일을 받아 압축을 푼 후에 스팀 게임 설치 디렉토리로 이동합니다. 2. "SteamApps\common\DDDA" 위치에 모두 복사해 넣으세요. 중복되는 파일은 덮어 씌우시고요. 3. "nativePC\rom" 폴더로 이동하여 patchall.bat 파일을 실행하면 창이 하나 뜨면서 패치가 시작됩니다. 4. 패치완료후에 창을 닫고 게임을 즐기면 됩니다. ^^; 주의 하실 점은, 이 패치는 기존의 영어음성을 덮어 씌우는 형식입니다. 따라서 영어음성으로 다시 바꾸시려면 무결성 검사로 게임을 원본으로 되돌려야 합니다. 음성을 따로 영어/일어 로 선택하여 즐기실 수는 없습니다.

VirtualBox 에 Lubutu 설치

 얼마전에 antix linux 를 설치했었는데 아무래도 늘 이용하던 패키지들이(앱들이) 아니다 보니 이런저런 시간지연(?)이 좀 되어서 천천히 알아가기로 하고 일단 익숙한 xubuntu 를 설치해서 쓰고자 했습니다만... 제가 보통 쓰는 virtualbox 에서 xubuntu 가 설치완료가 안되더군요. 중간에 멈춰버립니다. 부팅해보면 설치는 대충된거 같은데 뭔가 마지막 프로세스를 완료하지 못해서인지 로그인도 안됩니다.  몇번 해보다 안되서 그냥 루분투를 설치했습니다. 루분투는 잘 설치되네요. 루분투는 개인적으론 좀 애매하다고 생각해서....일반적인 데스크탑으로 쓰기엔 xubuntu 정도는 되야 하지 않나 생각합니다.  루분투는 넷북에 설치해 본 바로도 xubuntu 보다 빠르다는 느낌이 없어서 말이죠. 저사양 배포판일텐데.....뭐..넷북이 워낙에 느려서 그럴수도 있지만 antix 리눅스 설치해 본 바로는 lubuntu 보단 낫더라고요. virtualbox에 xubuntu 가 설치가 안되서 예상외로 시간을 좀 까먹었네요. 쩝....

pygame 에서 이미지 회전하는 방법

 pygame 에서 transform.rotate 를 사용해서 이미지를 회전시켜 보면 생각과는 달리 요상하게 회전합니다.    따라서 이를 해결해 보고자 검색해 보다 다음 링크를 찾았습니다. https://stackoverflow.com/questions/4183208/how-do-i-rotate-an-image-around-its-center-using-pygame/54714144 위 링크를 보면 파이게임의 이미지 회전이 왜 그렇게 이상한지 알 수 있고 답변하신 분이 blitRotate 라는 함수를 만들어 놓아서 이용할 수 있습니다.  제 소스에 가져와서 테스트를 해 봤는데 제 생각대로 회전 하더군요.  def blitRotate(image, pos, originPos, angle):       #calcaulate the axis aligned bounding box of the rotated image     w, h       = image.get_size()     box        = [pygame.math.Vector2(p) for p in [(0, 0), (w, 0), (w, -h), (0, -h)]]     box_rotate = [p.rotate(angle) for p in box]     min_box    = (min(box_rotate, key=lambda p: p[0])[0], min(box_rotate, key=lambda p: p[1])[1])     max_box    = (max(box_rotate, key=lambda p: p[0])[0], max...