'김연아'에 해당되는 글 1건

  1. 2010.01.04 FlyingYuna!! 3
2010. 1. 4. 02:01


 *실행파일 재 업로드.(소스도 재 업로드)
게임 쪽 버그와 한/영 자동 변경 부분을 수정하였습니다.
압축 푸실 때 반드시 \settings 폴더와 \wav 폴더도 실행파일과 같은 폴더에
압축풀어주셔야 원활하게 실행됩니다. (Window XP가 아닌 경우 .NET Framework이 설치되어 있어야 정상적으로 동작합니다.)
 
*버그 수정사항
아이템 상태변화 체크해서 작동 안 하게(done)
Bomb Item(반경 변경, done)
타자게임 GameOver 시 textBox enable false(done)
단문연습, 장문연습, 타자게임 한/영 모드 변환(done)
게임 중 메뉴 전환시 timer 중지(done)
게임 다시 하기. (done)
게임 중 포즈 기능(done)

------------------------------------------------------------------------------------

장장 6개월이 걸렸다. ㅠ.ㅠ
C#을 공부하면서 처음으로 프로그램 다운 프로그램을 만들어 보겠다고 시작한 것이 타자 프로그램이었다.

처음은 단문연습을 위한 기본이 되는 TextBox를 만들어 입력을 받아서 Keyboard Event 들을 처리하는 함수들을
Test하는데 많은 시간을 들였다. 영문은 쉬웠는데 문제는 역시나 한글이었다. 조합형이 뭔지 완성형이 뭔지도 모르는
상황에서 한글입력을 원활히 받기 위한 무언가가 필요했다.

기본적으로 영문은 치는대로 입력을 받을 수 있는데 반해 한글은 조합되기를 기다려 다음글자로 넘어가는지라 Event 를
처리하기 위해서는 KeyUp/KeyDown으로는 안 되고 KeyPressed Event를 써야 한다. 이것을 확인하는데 2주가 걸렸다.
(띄엄띄엄 만지다 보니 막히면 덮어놓고 생각날때 꺼내보느라 더 시간이 오래 걸린 듯 하다.)

어느덧 2개월이 지나고 그 간에 샛길로 새서 한글 자, 모 분리하는 방법에 대한 것도 실험에 들어가고 소스보고 테스트하고 하는데 시간이 지나갔다.

글쇠연습부분을 만지기 시작했다. 자판을 LeftTop, MiddleTop, RightTop 이런 식으로 9개로 분리를 하고,
각 KeyBlock에 대해 한 글자 반복, 순차반복, 조합반복 등의 내용으로 구성을 했다. 나중에 마무리단계에서 밝혀졌지만
영문에선 별 중요하지도 않던 것이 또 한글에서 발목을 잡았다.

예를 들면, 'ㅅ'과 'ㅛ'는 같은 KeyBlock에 속해있지만, TextBox에서 입력은 '쇼'로 입력되기 때문에 ㅅㅛ 를 연습하려면
따로 분리시켜서 입력받을 수 있어야 한다는 것. 약간 다른 문제로 'ㄱㅅ'를 'ㄳ'로 입력받으면 안된다는 것 등의 문제가
나를 괴롭혔다. 결국 마무리 단계에서 이를 지원하지 말자는 황당한 결론을 내 버리고 한 문자 글쇠연습만 하는 것으로 합리화를 시켜버렸다. (이 걸 놓고 계속 씨름하다가는 프로그램이 네버엔딩이 될 것 같았고, 무엇보다 새해가 되기전에
마무리해야 된다는 압박감이 들었다.)

기본적인 타자연습 부분이 한 축이었다면, 또 한가지 큰 축은 타자게임이었다.
게임이랄 것도 없지만 너무나 밋밋하지 않기 위해서 약간의 애니메이션 다운 모습을 보이려니 시간이 괘 걸린거 같다.

먼저 워드리스트 만들기.
단어 리스트로부터 화면에 배치시키는 작업에 Collision Detection 따위가 들어갈 줄은 미처 생각지 못한 부분이었다.
첨에 단어들을 Random으로 발생시키니 마구 겹쳐버리지 않았던가!
단어들을 순차적으로 나오게 하고 해당 단어를 Typing하면 사라지게 한 다음에는 무언가 Effect가 필요했다.
단어를 치면 바로 없어지는게 아니라 별이 발사되고, 반짝이 단어는 폭탄이 되거나 독약이 되거나 하는 등의 Effect를
구현하는 부분이 처음인지라 시간이 걸렸다.

마지막으로 색깔을 입히는 부분에서 또 한 달 가량이 소요됐다.
각 화면을 정리하고 메인화면부터 각각의 화면에 어울리는 이미지를 입히고 아이콘을 배치하는 부분은 내가 잘 할수 있는 부분도 아닌지라 노가다성 작업이 주를 이뤘다. 특히 게임과 문장을 Clear했을 때 나는 Wav 파일을 찾기 위해서 내가
한 노력을 내가 생각해도 눈물겨울 정도다. 구글링으로 공짜 wav file들을 찾아서 하나하나 들어보고 다음까페에 가입하여 wav file set을 받아서 천가지 사운드를 일일히 확인해 보고 선별하고(마음에 드는 효과음을 찾는 것이 이렇게 힘든
줄 몰랐다.)하는 작업이 필요했다.

아이콘은 iconspedia 에서 꽤 근사하고 멋진 아이콘들을 찾을 수 있었다. 메인 화면 디자인도 처음에는 아이스링크였으나 아이콘들을 배치하다가 깔끔한 방향으로 변경되었다. 머리 속에 처음에 그린 것을 표현하는 것이 상당히 힘들다.;;
또 한가지 어려웠던 것은 사운드를 비동기적으로 재생하는 것이었다. c#에서 재공하는 함수들로는 구현이 잘 안되어서
WinAPI 제공함수를 사용했다.

어찌됐든 c#으로 만든 첫번재 프로그램은 이렇게 탄생됐다. 아직 beta 버전으로 밖에 소개할 수 없지만,
나중에 ? 시간이 허락한다면 정식 버전으로 만들어 보고 싶다.

첨부로 실행 프로그램과 소스파일을 올린다.
날카로운 지적 대 환영이다.









Posted by Actruce
이전버튼 1 이전버튼