디시인사이드 갤러리

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

갤러리 본문 영역

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

Vita500갤로그로 이동합니다. 2009.07.17 16:29:45
조회 251 추천 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 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45065 65
2868892 오늘 점수 나왔는데 생각한거보다 잘나옴. [3] ㅇㅇ(223.38) 16:47 9 0
2868891 형님들 백엔드 스프링부트 먼저 하고 프갤러(106.102) 16:46 4 0
2868890 여름면접 처음인데 어떻게 입고가냐?? [1] 프갤러(39.117) 16:42 8 0
2868889 젊어서 부럽다 배구공(119.202) 16:33 10 0
2868888 보고 싶다 [2] 프갤러(121.129) 16:32 16 0
2868887 코딩 인강 질문점 [1] 프갤러(211.36) 16:28 13 0
2868886 한국 개발직 2025년 통계 프갤러(107.189) 16:23 22 1
2868885 저번에 롯데리아 소프트크랩버거 출시기념으로 [1] 배구공(119.202) 16:15 17 0
2868884 국비충 학원 콤퓨타 사양 [1] ㅇㅇ(118.235) 16:14 19 0
2868883 아직 중국은 셰이더 운운할때는 [3] 배구공(119.202) 16:13 22 0
2868882 누가 나님 냥덩이 만진거야? [1] ♥냥덩이♥갤로그로 이동합니다. 16:07 12 0
2868881 한국인들의 저작권 의식은 과제대행 시장만 봐도알수있음 [1] ㅇㅇ(103.251) 15:55 37 2
2868880 요약: ㅆㅇㅆ는 무책임하게 베끼기만 하고 그걸 말하고 있음 ㅇㅇ(140.248) 15:52 26 2
2868879 아니 중국 블로그 참고했고, 중국 블로그가 원저작자가 아녔다 그래서 [5] ㅆㅇㅆ(124.216) 15:50 31 0
2868878 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 15:44 15 0
2868877 디시에 씨발 중국 쉐이더 블로그에 구현방식 적혀있던거 HLSL로 [5] ㅆㅇㅆ(124.216) 15:44 36 0
2868876 둠 헥센 헤레틱 듀크뉴켐3d 배구공(119.202) 15:44 14 0
2868875 쉐이더 베꼈다고 생각하는 대가리면 아직도 참.. [12] ㅆㅇㅆ(124.216) 15:30 65 0
2868874 나 재수강할거 다해도 학점 3점 초반대가 최대인데 [2] 프갤러(115.91) 15:26 22 0
2868872 똑같은글로 실베 두번감 푸루린갤로그로 이동합니다. 15:18 20 0
2868871 이게 나라탓이라고 보이는 저능아는 대체 어찌해야좋냐 [34] ㅆㅇㅆ(124.216) 15:16 103 0
2868870 오늘은 나라탓 프갤러(140.248) 15:07 26 2
2868869 한국 게임 개발도 그래 유명 게임 개발자들이 쓴 책, 발언 뜬적있냐 [3] ㅆㅇㅆ(124.216) 15:04 47 1
2868868 한국 욕하는 애들 글을 읽을때 [2] ㅇㅇ(211.235) 15:01 39 4
2868867 정처기 지식대로 코딩하면 도태되니까 문제임 [5] ㅆㅇㅆ(124.216) 14:57 50 0
2868866 이 한국이라는 환경이 사고를 발현할 기회를 차단한다. ㅆㅇㅆ(124.216) 14:52 17 0
2868865 가난하면 지적 불구자가됨. 프갤은 나 포함해서 절대다수가 지적 불구자고. ㅆㅇㅆ(124.216) 14:48 23 1
2868864 개발자라는 말의 범위가 너무 큼 [2] 프갤러(223.38) 14:47 25 0
2868862 프로그래밍 하는 사람들도 다 제대로된 정보 캐치 못하잖아 ㅆㅇㅆ(124.216) 14:43 23 0
2868861 당장 부모가 가난해서 정보가 늦으면 AI 접근율에서도 유의미하게 차이남 ㅆㅇㅆ(124.216) 14:35 18 1
2868860 자꾸 착각하는데 대한민국은 부모가 돈없으면 노력해도 안되는 국가임 [2] ㅆㅇㅆ(124.216) 14:31 21 0
2868859 django는 개인에게 너무 커 플라스크로 충분함 ㅆㅇㅆ(124.216) 14:28 12 0
2868858 노력할수록 통수로 보상하는 나라 ← 사실일까? [1] ㅇㅇ(113.131) 14:15 39 1
2868857 요즘도 스벨트가 짱이냐? 프갤러(211.234) 14:03 17 0
2868856 발바닥에 모기물림ㅠㅠ 프갤러(113.59) 13:59 15 0
2868855 Streamlit 시발 이거 다신 안씀 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 13:48 45 0
2868852 면접 갈때마다 또라이 면접관들 걸린다 [2] 프갤러(39.7) 13:29 43 0
2868849 형들 부산에 하드웨어 + 소프트웨어 협업 하는 직종 뭐가 있을까 프갤러(121.145) 13:19 21 0
2868848 국비 과목 종류 도움좀 부탁드립니다 선생님들. 프갤러(220.123) 13:17 27 0
2868847 연봉 4천이 쉬운줄아는 글들이 간혹 보이는데 [5] ㅇㅇ(106.102) 13:06 66 0
2868846 댓글 좀 삭제하려했는데 ㅎㅎ [1] 루비갤로그로 이동합니다. 12:52 21 0
2868845 tqqq 분할매수법 안한새기 없제?? 컄ㅋㅋㅋㅋ 공기역학갤로그로 이동합니다. 12:48 37 0
2868844 나님.. ♥냥덩이♥갤로그로 이동합니다. 12:34 28 0
2868843 흠.. ♥냥덩이♥갤로그로 이동합니다. 12:30 27 0
2868842 똑똑한 사람일수록 불알 주름이 많다 [1] ㅇㅇ(118.235) 12:20 32 0
2868841 Ai가 생기면서 독서가 중요해졌다 [4] 루도그담당(223.39) 12:09 54 0
2868836 진짜 GPT로 번역하면서 해외 실무서적 읽으면서 느끼는건데 [4] ㅆㅇㅆ(124.216) 11:22 67 0
2868834 너 같으면 연봉 4000 에 잣 빠지는 곳에서 일하겠냐? [5] 프갤러(59.16) 11:08 74 0
2868830 지방대 IT 전공 4학년인데 부캠없이 바로 취업 못함? [2] 프갤러(211.59) 10:29 74 0
뉴스 유은빈 모델, '청순미 가득' (2025 인천국제민속영화제) 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2