이번시간은 대포를 가져와서 움직임 까지 주겠습니다.

우리가 만들 게임은 왼쪽 하단에 위치한 대포가 90도 각도로 움직이면서 적을 격추시키는 게임입니다.
오늘은 대포를 키보드 입력에 따라 위아래 90도 안에서 움직이게 하겠습니다.

가장먼저 앞에서 했던 것 과 달리 클래스를 하나 지정해서 게임을 제작하겠습니다.
동일하게 텍스트를 가져오고 위치를 지정하는 형식이 많은 관계로 하나의 클래스로 바로바로 불러와서
게임 제작에 좀더 빠르고 용이하게 하겠습니다.

새 항목 추가에서 클래스를 추가합니다.

사용자 삽입 이미지

























GameObject.cs 라는 이름의 클래스를 정의합니다.

사용자 삽입 이미지


















 게임오브젝트 클래스는 각 그림, 위치, 각도, 그림중앙을 자료로
함수 게임오브젝트를 초기화 하고있습니다. 인자로는 그림을 받습니다.
게임에 오브젝트로 사용될 클래스의 정의가 끝났습니다.

다시 돌아가서 지금 선언한 클래스를 cannon의 이름으로 선언합시다.
사용자 삽입 이미지










다음으로는 캐논 그림파일을 로드 하겠습니다.
사용자 삽입 이미지
cannon을 초기화 해줍니다. 그림파일을 cannon으로 가져와주시고~
위치는 120,520 으로 설정해줍니다.

이제는 키보드 입력에따라 움직임을 주도록합시다.

사용자 삽입 이미지















가장 위에 키보드 입력상태를 KeyboardState 에 저장해주시구요
왼쪽키나 오른쪽을 눌렀을때 각도를 0.1 만큼 이동시키도록 합니다.

이대로 하면 캐논은 360도 빙글빙글 돌겠죠? 90도만 움직이게 제어합시다.
 cannon.rotation = MathHelper.Clamp(cannon.rotation, -MathHelper.PiOver2, 0);
캐논의 각도를 제어합니다 = Clamp(제어할변수, 최소값, 최대값)
PiOver2(90도),PiOver4(180도)...등등 있습니다.msdn 검색해서 한번보세요^^;

자이제 그림에 움직임까지 주었습니다. 이제 화면상으로 불러냅시다. Draw!!

사용자 삽입 이미지















그림이 회전하게 그려내는 spriteBatch.Draw 형태입니다. 전혀 어렵지 않아요-0-
많을 뿐이죠-_-......
아래 순서대로 입니다.
Draw (
         이미지 이름,
         이미지 위치,
         이미지 크기 null시 그림전체,
         색,
         각도,
         중심점(이걸중심으로 회전),
         이미지확대/축소 1은 원본크기,
         효과(이건아직 자세한건 모르겠습니다),
         레이아웃 깊이
)

자 이제 끝났습니다 움직이는 캐논이 완성되었습니다.

캐논의 중심점이 가운데가 아니냐는 말씀이 있으신데 이미지 자체에 크기를 조절해서
/2 로 나누면 1/3 지점을 중심점으로 조절했습니다.^^

사용자 삽입 이미지
Posted by 알 수 없는 사용자
:
BLOG main image
XNA Project
by j3rry

공지사항

카테고리

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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/05   »
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 31
Total :
Today : Yesterday :