'2009/12/02'에 해당되는 글 1건
[Matlab][공학컴퓨터프로그래밍] 포트리스
Posted at 2009/12/02 05:22// Posted in Study/Matlab2009년 2학기 공학컴퓨터 프로그래밍 프로젝트
애초에 매우 거창하게 시작하였는데 점점 내 능력의 한계를 깨닫고 가지를 계속 쳐내서 현재의 모양까지 왔다. 건담을 만드려고 한건데 결과물은 손바닥만한 목각인형이 된 꼴이다.
애초에 대전모드, 지형의 구현, 유도탄 등이 구현될 예정이었으나 실력부족으로 패스.. 소스 들여다보면 지금은 누락된 부분의 함수와 변수들이 곳곳에 존재하여 기분이 썩 유쾌하지가 않다.
그리고 큰 버그가 하나 있는데, for문으로 포탄의 움직임을 구현했고 목표물에 명중할때나 바닥에 닿을때 break로 루프에서 빠져나오도록 했는데 간혹가다 값이 무진장 튀며 에러나는 경우가 있다. 물론 전체적인 진행에는 별 문제없지만 매우 짜증나게 했다. 처음에는 변수의 초기화가 안되서 그런가 했는데 그냥 break 명령어를 써서 값이 튀는듯 하다. 혹시나 해결방법을 아는 사람은 리플 좀.. While로 돌리면 깔끔하게 돌아가나 이때는 포탄의 궤적을 표시할줄 몰라 그냥 for로 짰다.
혹시나 비루한 코드나마 가져가서 사용할 사람들이 있을까 공개해본다.
gamestart.fig/gamestart.m 난이도 선택
총 세가지 난이도 모드가 있다. 난이도가 올라갈수록 바람의 변동폭은 커지고 타겟의 충돌검출은 더욱 엄밀해진다. 그리고 사용가능한 특수 포탄의 갯수가 줄어든다.
main.fig / main.m
시작시 랜덤으로 목표물의 좌표가 그래프축상에 표현된다. 스크롤바를 움직여 발사속도, 발사각도를 조절하며 기본인 1발탄과 특수미사일인 4발탄이 상호선택 가능하다. 목표물을 맞추지 못하면 다시 쏴야 한다. 바람방향과 세기는 매 발사때마다 바뀐다. 바람의 변동이 방향성이 있었으면 좋겠는데 시간상 구현하지 않고 그냥 rand로 처리했다.
특수미사일인 4발탄(?)은 메인 포탄을 중심으로 3발의 탄이 추가적으로 나간다. 물론 그 방향은 랜덤이나 메인 포탄의 진로에서 그리 멀리 나가지는 않는다.
말 그대로 하이스코어다. 최단 턴으로 목표물의 명중시 하이스코어 창이 뜬다. 이름도 입력받고 싶었으나 된장맞을 파일에 스트링으로 저장하는 방법을 모르겠다. 레퍼런스를 잘 찾아보면 나올지도 모르나.. 역시 시간상 이대로 끗.
@ 지관
리퍼러 목록을 살펴보니 슬슬 프로젝트가 나온듯...
시간이 없어서 버그를 다 잡지 못하였는데 필요한 분은 가져가서 잘 수정해보세요..
그리고 GUI는 여기서 공부하시고.. http://blog.naver.com/higherdo?Redirect=Log&logNo=80046851877
Fortress.zip
funmacworld@naver.com 요기로 메일주세요..
저도 지난학기에 matlab 처음 배워서 급히 짠 코드라 거의 다 까먹었네요.. 대강의 방향성만 제시해드릴 수 있을 것 같습니다.. 기계과는 시험 한주 일찍 치는 과목도 많던데.. 고생 많으십니다....