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 2021-02-07 05:29:37
Processing time 0.0770 sec