3D게임 제작에 앞서 간단하게 어떻게 3D가 구현되는지 확인해보겠습니다.


위 파일이 저희가 구현할 3D 파일입니다. -_-친구가 모델링한걸 몰래 가져와서 씁니다 흐흐
가장먼저 솔루션 탐색기에 Models 폴더에 위에 다운받은걸 다 풀어주세요~ㅎ

사용자 삽입 이미지

선언부입니다 그림하나 표현하는데 상당히 많은 선언이 나타났습니다.
일단 쭈욱 한번 읽어보세용 ^^

사용자 삽입 이미지

#참고 출처(riemers XNA tutorial)
여기서 잠깐 matrix에 대한 얘기를 잠깐하고 넘어가겠습니다. 일반적으로 우리는 3D공간에 vertex라 부르는 일련의 점들을 위치시키곤 합니다. 하지만 우리가 눈으로 보고 있는 화면은 결국 2D입니다. 즉 우리가 3D라고 생각하는 공간은 어디까지나 가상으로 존재하는 공간일뿐, 실제하는 것은 2D인 화면뿐입니다. 그래서 우리는 가상의 3D공간을 2D의 화면을 통해 출력하기위해 matrix를 씁니다. 3D공간의 위치값을 matrix로 표현하면 이를 2D 화면의 위치값으로 변환하기가 간단해집니다.

위 매트릭스에 관한 간단한 지식을 가지시고 시작합시다.
CreateLookAT(카메라 , 카메라위치 , 위를 바라봄)
CreatePerspectiveFiedOfView(
카메라 앵글 각도
화면 크기 설정
대상 구간 최소값
대상 구간 최대값
)
대상 구간이란 표현한 3D객체가 그 범위안에 있어야 보입니다.
1~1000 안에 있어야 객체들이 카메라에 비춰질것입니다.

사용자 삽입 이미지
매시간 모델을 회전시키기위해 한줄 추가되었습니다.

사용자 삽입 이미지

Draw에 많은 내용이 있습니다.
foreach아래로 3d를 표현하기 위해  effect를 다 주었습니다.
전체적으로 3d를 표현하려면 이런 이펙트들을 줘야 한다 정도로 이해합시다
effect하나하나 보시면 어느정도는 이해가 가능하실 겁니다.

자 이제 모든 준비가 끝났습니다. 디버깅해봅시다.

사용자 삽입 이미지

 3D구현에있어서 간단하게 맛을 봤습니다.
잘 돌아가는군요 `ㅡ` 다음시간 부터는 3D슈팅 게임제작에 들어가겠습니다.

Posted by 알 수 없는 사용자
:

게임 점수판을 만들어 주겠습니다.
이것도 상당히 간단합니다. 전체적으로 이해만하신다면 순식간 + _ +흐흐

솔루션 창에 Fonts 라는 새폴더를 만들고 새항목 추가를 클릭하셔서
Sprite Font를 하나 만듭시다.

사용자 삽입 이미지
























제목은 위와 같이 해주시구요 ^^
만드신후 GameFont.spritefont 를 더블클릭하시면 XML이 나옵니다...뭐지...ㅎㅎ
걱정하지마시구 두가지만 설정해주시면 됩니다.
사용자 삽입 이미지








폰트네임과 크기를 설정해 주었습니다. 우리가 사용할 폰트 설정마쳤구요~이제 선언합시다.

사용자 삽입 이미지



선언부에 3가지가 추가 되었습니다. 위치에 0.1f,0.1f 이유는 아시겠죠 이제 ^^화면크기에 곱할거에욤
이제 폰트를 로드하도록 합시다.

사용자 삽입 이미지


요거 한줄 추가 되었습니다.

아 그리고 비행기 격추시 스코어 값을 더해줘야겠죠 ?

public void UpdateCannonBalls()함수에 이부분이 수정되었습니다.
사용자 삽입 이미지






1점씩 더해주시구요 이제 화면에 그리기만 하면 됩니다.^^

사용자 삽입 이미지





DrawString (
         글씨체(font),
         출력할text,
         위치,
         색지정
)
#참고 : ToString() 은 int값을 문자열로 반환합니다^^
자 이제 디버깅 해봅시다. ^^
사용자 삽입 이미지

이것으로 2D 슈팅게임 만들기가 완성되었습니다.
XNA에서 기본적으로 나오는 tutorial을 따라했습니다.
다음은 3D슈팅게임 만들기로 넘어가도록 하겠습니다.
소스 첨부 하겠습니다.^^
수고하셨습니다.



Posted by 알 수 없는 사용자
:

총알과 적기가 충돌하면 비행기가 사라지도록 구현하겠습니다.
간단합니다 충돌에 대한 메서드가 기본적으로 있어서-_-바로 적으면 되는군요;;

우리가 할일은 미사일영역과 비행기 영역을 설정해주고
그 두영역이 충돌시 없애주기만 하면 됩니다.
 public void UpdateCannonBalls() 함수를 수정합니다.
미사일이 발사 되었을 때 !!

사용자 삽입 이미지

















Intersects 이함수가 두영역이 곂쳐지면  true 를 출력합니다.
if문으로 간단하게 완성되었습니다.

디버깅해봅시다.

Posted by 알 수 없는 사용자
:

BLOG main image
XNA Project
by j3rry

공지사항

카테고리

분류 전체보기 (27)
XNA SQUARE (2)
Xna로 가는길 (14)
XNA Project (8)
XNA 자료 (2)
Design & Architecture (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2008/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Total :
Today : Yesterday :