E D R , A S I H C RSS

비행기게임

1. 비행기 게임

  • 비행기 게임을 한번 만들어 봅니다.
  • Python을 익히는 과정과 비행기 만드는 과정은 거의 동시에 이루어진다.
  • 기초적인 것들은 먼저 익힌다.
누가, 언제, 어디서, 무엇을, 왜, 어떻게 중 들어가야 할것은?

2. 공지

  • 인수야~ 재동아 언제 한번 모이자~~~~~
  • 오늘 11시에 모이기로 했는뎅.. 아무도 안왔당. ㅠㅜ 재동이는 좀 늦는다고 했고, 인수는 왜 안오는 거징.. 아...역시 팀 프로젝트는 어렵당.. ㅠㅜ - 상협

3. 참여자

학번 이름 역할
01 남상협 -
01 강인수 -
01 신재동 Graphic Design

5. 현재 해야할 일

  • 배경 움직이는 효과
  • 적기 종류 늘리기
  • 적의 미사일도 다양하게 만들기(유도 미사일등)
  • 각 스테이지 만들기(한 6판 정도..)
  • 비행기에 다양한 무기 만들기
  • 그래픽...처리등..
  • 배경 움직이기
  • 모든 이미지 업그레이드
  • 전체 화면 만들기
  • 첫 화면 (게임 이름, 스타트, 하이 스코어, 이름 넣기)
  • 아이템

6. 끝난 일

  • 행동 함수 만들기, 적기 미사일 나가게 하기
  • 충돌 처리 제대로 하기.. (ㅠㅜ)
  • 미사일 발사할때 몇개가 연속으로 나가는거 해결하기
  • 플레이어 비행기 죽기
  • 적기도 미사일 쏘기

7. 아이디어

  • 횡 스크롤 비행기 게임 => 종 스크롤로 변경
  • 미사일 세지는 아이템
  • 나중에 비행기 변신하는 아이템
  • 맥스페인에서의 시간 느려지는 효과를 내는 아이템
  • 2인용 대결 모드. 상대편과 내가 일정한 시간후에 만난다.. 그 중간 과정에서 얼마나 많은 컴퓨터 적을 격추 했는지에 따라서 무기를 업그레이드 하거나 한다.
  • 그리고 비행기 게임을 하면 보통 자기 비행기 하나 빼고 나머지는 다 적군이서 막 생각없이 미사일 버튼만 누루면서 갈기는데 그것 보다 아예 적기가 나오면서 동시에 아군 비행기도 적당히 등장해서 자신을 돕게 한다. 아군 비행기는 자신의 미사일에도 격추된다. 더 신중하게 미사일을 누루게 될것이다. 그리고 아군 비행기를 격추할시에는 일정한 벌칙이 있다. 무기가 한단계 안좋아 진다든지 하는 식으로.
  • 적기를 막 쏘기 보다는 적기의 특정한 부분을 맞추면 적기가 더 잘 부서지게 한다. 예를 들어서 다른 부분에 맞으면 적기가 2번 만에 죽는데, 왼쪽 날개 끝에 맞으면 단번에 죽는 식으로..
  • 템플러의 사이오닉 스톰과 같은 보조 무기
  • 땅따먹기 + 비행기... 음.. 구체적으로는 안 떠오른다.
  • 적기를 얼려 버리는 보조 무기
  • 음... 적기를 삼키는 비행기.. 적의 미사일은 피해야 한다. 자기는 미사일이 없고 적기를 삼켜야 적기를 폭파할 수 있다.
  • 적의 미사일을 먹고 성능이 좋아지는 비행기. 적의 미사일은 맞아야 좋다. 단 엄청 빨리 움직이는 적과 부딪히면 죽는다.

8. 과정

8.1. 1단계

  • 먼저 Python을 익힌다. V
  • 초고속으로 익힌다.

8.2. 2단계

  • 기초적인 모듈을 만든다.
  • 비행기 움직이는 모듈 V
  • 충돌 모듈 -> 이것이 좀 복잡할거라고 생각했는데 pygame에서 처리하는 함수 있음 ㅡㅡ;
  • 적기 모듈
  • 화면 움직이는 것처럼 보이게 하는 모듈

8.3. 3단계

  • 합체 ㅡㅡV

8.4. 4단계

  • 이쁘게 꾸민다.
  • 아이템을 실제적으로 게임에 넣는다.

10.

  • 정적 메소드 쓰는법

~cpp 
class D :
    def spam(x, y) :
        print 'static method', x, y
    spam = staticmethod(spam)
  • 파이썬 디버그 사용 방법
{{
import pdb

pdb.set_trace() //디버그 할 곳에서
}}

11. 잡담

  • 게임 만드는 것은 내 취향이 아닌거 같다. ㅠㅜ, 이번 비행기 게임 프로젝트를 통해서 뼈저리게 느꼈다. 뭐 그래픽 넣을때도 포토샵 단색으로 그리고, 또 세세한 부분 신경 쓰는걸 잘 못하겠다. 아마다 덜렁대는 성격때문인거 같다. 오목 만들때는 재밌었는데 비행기겜 만드는건 그것 만큼은 아니다. 쩝.. - 상협
  • 절망이다. ㅡㅡ;; 마음만 급해가지고서는.. 허둥대고 있당... 말만 하고 실제로는 한것이 없는거 같당.. 제대로 공부를 안해서 그런지 이것저것 잘 안되는 부분이 많당.. 결과적으로 보면..쩝..
    게임 그래픽 부분이 만만치 않긴 하지.. 흐흐. 스프라이트 그리는 사람이 고충이 생각보다 많음. 안티 엘리어싱 부분의 경우 투명색이 제대로 처리가 되지 않기 때문에 도트노가다를 해주어야 하거든. 나의 경우 포토샵으로 일단 트루컬러로 그린뒤 그것을 256 indexed color 로 바꾸고 투명색 하나 넣어서 도트노가다 해주는 식이거나, 또는 아에 3D 툴로 그리던지. (3D 툴로 모델링하고 렌더링시에 웬만한 툴들은 alpha channel 을 따로 저장하거든. 그래서 3D 툴로 만든건 안티 엘리어싱 문제를 그리 의식하지 않음.) 또는 아에 엔진 자체가 3D이고 스프라이트들이 3D 이던지지만 이건 논의 대상 밖이겠군; 해성이의 경우는 원래 도트 노가다에 일가견이 있기에 뭐 전부 그려주긴 했고;
    그리고 몇몇 캐릭터들에 대해서 스프라이트 사이즈에 대한 문제들도 있긴 하지만, 뭐 이건 논의 제외하기로 하고.
    암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 Refactoring 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --1002

  • 결구 오늘.. 2시 30분에 재동이 오구.. 4시에 인수 왔당.. -_-;;;;
한가지 더 개인적인 조언을 추가한다면, 일단 지금 생각나는 '앞으로 해야 할일들' 을 좌악 정리하길. 그 다음 그 일들에 순위를 매겨서 일들을 해 나가는거지. 그러다가 중간에 '예상치 못했던, 하지만 해야 할 일들' 을 만나면, 앞에서 적은 그 리스트에 항목을 추가해주고 그 일을 하는거지. '내가 해야 할 일들이 너무 많아' 라고 생각될 때 추천하고싶은 방법임. --1002

  • 8월 17일: 아무도 안 왔다. 전화도 안 받는다. 지금 뭐 장난 하는건지. 지금까지는 열 안 받으려고 무진장 노력했다. 근데 이제는 뭐 열받을것도 없이 그냥 나도 프로젝트 안하던지 소스 다 날려 버리던지 해야겠다. -상협
  • 프로젝트 그만 둘거면 확실히 말해주길 바란다. 괜히 어정쩡하게 해서 프로젝트 진행만 못하게 하지 말고.
    미안.. 나두 열심히 해주고 싶은데.. 잘 안되네.. 지금 와서 계속 한다고 하기도 미안하고 빠진다고 하기도 미안하고.. ㅠ.ㅠ
  • 음.. 내가 봐도 좀 흥분을 했었넹.. -_-;; 얘들아 담주에 끝내서 정모에 선을 보이자~ 인수야 하여튼 열심히 하장~ - 상협
----
'비행기게임' 을 위한건지 아니면 Python 공부를 위한건지? 뭐 둘 다 상관없긴 한데.. 비행기 게임 제작 과정에 'Python 익히기' 가 먼저인건 순서가 아닐 것 같아서.

개인적으로 '형은 뭐 먼저 했어요?' 라고 질문한다라면, '나는 DirectX 7.0 의 Space donut 소스 분석한뒤 만들었지만, 꼭 DX를 볼 필요는 없다' 라고 말해주고 싶군.

일단은 작은 아이디어를 하나 정한다음 (그 뭐다냐.. 총알 피하기 폐인 게임같은거) 완성시킨뒤, 프로그램을 키워가는 것도 좋을듯. --1002
----
프로젝트분류
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2013-11-16 09:55:50
Processing time 0.0990 sec