LPD3DXSPRITE 를 사용하던중 문제가 생겼습니다.

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
neon
Posts: 2
Joined: 2008-02-28 13:36

LPD3DXSPRITE 를 사용하던중 문제가 생겼습니다.

Post by neon »

아.. 항상 보기만 하다가 질문을 올리는건 처음이네요

아무리 검색을 해봐도 저와 같은 문제를 안고 계신분도 없는거같고..OTL

후.. 아무튼 질문의 내용은 이것입니다.

///////////////////////////////////////////////////////////////////////////////////////////
LPD3DXSPRITE g_pSprite; //객체를 생성하고
g_pSprite->Begin( D3DXSPRITE_ALPHABLEND ); // 시작

//이것은 배경그림
g_pSprite->Draw( m_TextureList[3].Tex
, &bg
, NULL
, &D3DXVECTOR3(0, 0, 0)
, D3DXCOLOR(1,1,1,1) );

//이것은 그위에 올라올 작은 그림입니다.
g_pSprite->Draw( m_TextureList[4].Tex
, &small_pic
, NULL
, &D3DXVECTOR3(0, 0, 0)
, D3DXCOLOR(1,1,1,1) );

g_pSprite->End(); // 끝
///////////////////////////////////////////////////////////////////////////////////////////


이런 코드가 있다고 가정했을때, 제경우에는 배경위에 올라올 작은 그림에 SetTransform()을 사용하여
스케일을 바꾼다던가.. 회전을 시킨다던가 가 하고싶은겁니다.

근데 문제는 SetTransform 을 사용할때는 g_pSprite->SetTransform() 이런식으로 사용이 되는데.

그럴경우 배경그림까지도 SetTransform 의 영향을 받는다는 거지요.

이 문제를 해결해보려 LPD3DXSPRITE 객체를 하나더 생성해보기도 했지만.
에러가납니다.

저런 상황에서 작은 그림에만 변환을 시키려면 어떻게 해야할까요?

제가 아직 초보다 보니까 질문이 많이 허접한거같은데..

혹시 해결책을 가지고 계시는분은 꼭 알려주셨으면 합니다!
smflt
Posts: 25
Joined: 2008-02-27 02:29

그냥 매쉬파일 위치 처리하듯이

Post by smflt »

그냥 매쉬파일 위치 처리하듯이

텍스쳐의 여러 정보(위치,회전, etc)를 가진 클래스를 만들고 그려줄때는

SetTransform()
그리기

SetTransform()
그리기

와 같이 변환시키며 그려주면 다 방향이 다르더라도 자유롭게 그릴수 있으실 겁니다.
neon
Posts: 2
Joined: 2008-02-28 13:36

Post by neon »

으헝... 저렇게 간단한걸 왜 생각 못했을까요.. OTL

답변 감사합니다!
Locked