디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

DX 2D비행슈팅강좌 15. Character의 위치

Vita500갤로그로 이동합니다. 2009.07.17 16:29:45
조회 250 추천 0 댓글 2




===== DX 2D비행슈팅강좌 ======
===== 15. Character의 위치 =====
위치설정, 이동등을 하려면, Character의 위치가 필요합니다.
Character의 위치를 넣어서 setPosition과 movePosition기능을
넣어보겠습니다.
Character의 위치와 그림의 위치는 별개로 동작하기 위해서입니다.




1. Character의 위치인스턴스
2. 이동
3. 위치설정
4. 분리된 함수들
5. 플레이어의 이미지
6. 플레이어이미지의 위치
7. 총알발사시 Character의 위치를 이용
8. 기능이 약화된 moveLeft







1. Character의 위치인스턴스
_vPosition

그림은 각각개별위치를 가지므로, 위치설정시
Character의 위치가 필요합니다.
Character가 얼만큼이동했으니, 그림들도 그만큼이동하라고 합니다.
그림들은 Character의 위치기준으로 배치가 되는셈입니다.










2. 이동
VOID Character::movePosition(const D3DXVECTOR3* vPos)
{
        _vPosition += *vPos;

        INT iAniSize = 0;
        iAniSize = _vImages.size();
        INT iImage_size = 0;

        for (INT i=0; i<iAniSize; ++i)
        {
                iImage_size = _vImages[i].size();
                for (INT k=0; k<iImage_size; ++k)
                {
                        _vImages[i][k]->Position.x += vPos->x;
                        _vImages[i][k]->Position.y += vPos->y;
                }
        }

}

이전의 moveLeft와 비슷합니다.
다른점은 벡터값만큼 Character._vPosition를 이동시키고,
모든 그림에도 그만큼 이동을 시킵니다.









3. 위치설정
VOID Character::setPosition(const D3DXVECTOR3* vPos)
{
        D3DXVECTOR3 vMove;
        vMove = *vPos - _vPosition;

        movePosition(&vMove);
}

바꿀위치를 받아서, 이동할 량을 계산합니다.
그리고, movePosition을 호출하여 이동을 시킵니다.
기존의 setPosition은 사용하지 않아서 삭제합니다.









4. 분리된 함수들
VOID        InitBullet(VOID);
VOID        InitEnemy(VOID);
VOID        InitPlayer(VOID);

InitCharacter의 함수가 너무커서 3개로 분리했습니다.








5. 플레이어의 이미지
D3DXCreateTextureFromFileExW( _pd3dDevice, L"nemo80_160.png", 

플레이어의 중심점을 바로 알수있게 하기위해 
십자가 그려진이미지를 사용하였습니다.
Character의 0.0f, 0.0f로 위치시키면, 이미지의 정중앙이
윈도의 0,0에 위치합니다.








6. 플레이어이미지의 위치
PlayerImage.Position.x                = -40.0f;
PlayerImage.Position.y                = -80.0f;

플레이어위치에 이미지의 정중앙으로 이미지를 맞추기위해
이동시킵니다.
총알또한 같은 방법으로 이동합니다.








6. 위치얻기
const D3DXVECTOR3* getPosition(VOID);

총알이 나갈위치를 얻을때 이미지에서 얻는것이 아니라
Character에서 얻습니다.
이렇게 하면, 총알이 나갈위치라던지, 어떤 이벤트가 발생할때,
좌상단이 아니라 센터이므로 좌표설정하기가 쉽습니다.






7. 총알발사시 Character의 위치를 이용
imgBullet.Position = *_Player.getPosition();
_Bullet[i].setPosition( &imgBullet.Position );

이미지에서 위치를 받는것이 아니라, Character에서 받습니다.
기준점에서 그리게 되므로, 특별히 값을넣지 않아도 정중앙에서 발사됩니다.






8. 기능이 약화된 moveLeft
VOID Character::moveLeft(VOID)
{
        movePosition( &D3DXVECTOR3( -_Property.Speed * t, .0f, .0f) );
}


속도만 적용하여, movePosition을 호출하는것으로 끝납니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
274647 지금 야근 하는 횽들 화이팅이염~ [1] 거칠게갤로그로 이동합니다. 11.09.22 57 0
274646 역시 새벽에는 자야 한다... 흐규흐규 [1] 거칠게갤로그로 이동합니다. 11.09.22 57 0
274645 이건 뭐 반응도 없고...... [2] 거칠게갤로그로 이동합니다. 11.09.22 58 0
274644 헤드퍼스트 시리즈는 걍 개념만 잡아주는 책 같다... [1] 거칠게갤로그로 이동합니다. 11.09.22 108 0
274643 새벽이라 배고프다 -_- [1] 거칠게갤로그로 이동합니다. 11.09.22 51 0
274641 헤드퍼스트는 뭔가 좀 부족하더라 -_- 끝까지 다 읽었는데..... [1] 거칠게갤로그로 이동합니다. 11.09.22 99 0
274640 사람이 우선인거지... [1] 밤이네..(112.159) 11.09.22 41 0
274639 씨샵하는 애들은 별루 없냐? 거칠게갤로그로 이동합니다. 11.09.22 60 0
274638 새벽인데 잠에서 꺴다. 고로 난 짤방을 투척할 수 밖에 없다 [1] 거칠게갤로그로 이동합니다. 11.09.22 81 0
274635 맥북사면 개발할 때 [1] 로하로하알로하갤로그로 이동합니다. 11.09.22 80 0
274634 누가 MFC 내부구조 배운다고하면 말려야됨 [1] SuCo갤로그로 이동합니다. 11.09.22 98 0
274633 데비안 퍼미션좀 알려줭 [3] d(92.231) 11.09.22 43 0
274632 모두 스트라이크 위치즈를 보아라 [1] ㅁㄴㄻㄹ갤로그로 이동합니다. 11.09.22 56 0
274631 형들자바가그리쓸모없는언어임? [4] 탱구(119.69) 11.09.22 76 0
274630 야짤.jpg [2] 병신드라갤로그로 이동합니다. 11.09.22 139 0
274629 내 노예력은 타고난거같다 [1] Adelposs갤로그로 이동합니다. 11.09.22 55 0
274628 비전공자가 너무 무언가를 만들고싶어서 자바를 배운다고하기에; [6] noname(211.200) 11.09.22 163 0
274625 c언어 콘서트라는 책 읽어봤어?? warota(221.150) 11.09.22 119 0
274623 형들 윈도프로그래밍 질문점 [10] 플래닛댄스갤로그로 이동합니다. 11.09.22 84 0
274622 프갤형들 어셈블리 책은 뭐가좋아? [1] 어셈블리(121.154) 11.09.22 147 0
274621 형들 학교에서 visual c++ 6.0으로배우는 2010깔아도됨? [7] ㅅㄷ(114.207) 11.09.22 86 0
274620 으으.. 이걸 어떻게 해석해야 되여 ㅜㅜ [2] 혼전순결(121.88) 11.09.22 53 0
274617 아맞다 횽들 [4] 뇌지랄갤로그로 이동합니다. 11.09.21 88 0
274616 C#굇님만 이문제 해결좀.. ㅠ_ㅠ Sayrin갤로그로 이동합니다. 11.09.21 46 0
274615 자바고수님들 이 간단한 GUI 문제 좀 풀어주세요 ㅠㅠㅠㅠ [1] 복학생(220.116) 11.09.21 76 0
274614 비트다니는 형들 봐봐 [6] (61.77) 11.09.21 167 0
274613 피곤하다 [2] 뇌지랄갤로그로 이동합니다. 11.09.21 66 0
274611 모바일 OS 개발에 관심이 많은데 기초가 모자라서 고민 [2] ㅋㅋㅋㅋㅋ(219.241) 11.09.21 72 0
274610 일베에 불법 사이트 얘기가 [2] 로하로하알로하갤로그로 이동합니다. 11.09.21 65 0
274609 근데 비주얼 스튜디오 궁금한게 있음 ㅠㅠ 잘 안써봐서 잘 모름 [5] [성대아싸]갤로그로 이동합니다. 11.09.21 98 0
274608 음 문제풀고싶당. 힙꼬맹갤로그로 이동합니다. 11.09.21 48 0
274607 VS 2010 왜케 쓰레기임? ㅡㅡ [14] SuCo갤로그로 이동합니다. 11.09.21 207 0
274604 매트랩좀 도와줘 형들.. [7] 공대생......(210.115) 11.09.21 57 0
274603 엉켜버린 스파게티를 풀기위해 역문서화 들어가야것다. [2] 쵸쵸(219.251) 11.09.21 54 0
274602 제 실력 이정돈데 연봉 얼마 받을 수 있나요? [4] 이힝(121.177) 11.09.21 153 0
274600 윈도에서 mingw가 비주얼 스튜디오 익스프레스보다 더좋은점 [1] Regi☆갤로그로 이동합니다. 11.09.21 97 0
274599 엏엏엏엏겋렇ㅇ렇엉ㅎㅇ헹에헤에에헤헹헹ㅎ엏? 로하로하알로하갤로그로 이동합니다. 11.09.21 33 0
274598 자바에서 txt파일 읽어서 배열으로 할당하는법? [2] ㅁㄴ(220.78) 11.09.21 63 0
274597 20살넘어 게임하면 그쉑이는 또라이다 [1] 쵸쵸(219.251) 11.09.21 91 0
274596 형들 비주얼 C++ 6 포터블깔았는데 msdev 에러남 어떻게 해야함? [1] San갤로그로 이동합니다. 11.09.21 63 0
274595 형들 비쥬얼2010 프로페셔널에 mfc 있어?.그리고 자동화서버 오류.. [1] ㅇㅇㅇ(211.208) 11.09.21 58 0
274594 컴파일러 다들 뭐쓰시나? [10] C언어찌랭이갤로그로 이동합니다. 11.09.21 117 0
274592 역대 탑 엠씨들은 뭔가 엄청 잘나가다가 급속도로 쇠락하는 듯 [성대아싸]갤로그로 이동합니다. 11.09.21 70 0
274591 중소기업에서 연봉 2700 주면 괜찮은거임? [2] ㅇㄹ(119.197) 11.09.21 147 0
274590 강호동 저러다 매장되는거? [1] 이모군(175.114) 11.09.21 53 0
274589 근대 형들중에 나처럼 프로그래밍 배운 사람 없음? [2] 시그란♬갤로그로 이동합니다. 11.09.21 87 0
274588 자살춤 능욕 성공! [3] SODMaster갤로그로 이동합니다. 11.09.21 58 0
274587 근데 솔루션 회사라는게 무슨말이야??? 삼월삼일세시삼십삼분갤로그로 이동합니다. 11.09.21 50 0
274586 SVN 을 개인적으로 쓰고 있는데요 , 정작 쓰는게 [2] [성대아싸]갤로그로 이동합니다. 11.09.21 75 0
274585 휴 삼성서류는통과했구나 [1] 울랄라베이베갤로그로 이동합니다. 11.09.21 121 0
뉴스 김종국, 신혼집으로 ‘62억 고급 빌라’ 매입…“결혼 준비” 디시트렌드 06.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2