메뉴 건너뛰기

자유롭게 이야기를 적는 공간

추억의 냉무

 

 

가 아니라 어디부분을 손봐야하죠?

 

 

보통 비쥬얼노벨 게임을 하다보면 어딘가로부터 도망친다던가 할때,

전체그림이 줄어들면서 이동을 하거나,

 

어디로 들어갈때 문그림이 확대되면서 다음 장소로 이동이 되죠.

그 외의 경우에도 많이 쓰이고요.

이런 기본적인 기능이 없다니...

 

 

예를들어 1024 x 768 그림을, 600 x 500으로 그린다고 합시다.

제 엔진에서는 서페이스 크기를 줄이면 거기에 맞춰져서 출력되는 구조라서 그렇게했는데, 안됨.

흥크에서는 서페이스 줄이면 그냥 그림이 잘려서 나옴.

 

1. 맨 마지막 백버퍼 뒤집는 부분.

근데 여기서 뭔짓을 해도 안바뀌던데

 

  if((pit->second).show)
  {
   int px = (pit->second).x;
   int py = (pit->second).y;
   JPictureInfo pi;
   pi.SetColorKey((pit->second).key);
   pi.SetOpacity((pit->second).opacity);

   jdd->SetPictureInfo((pit->second).id, &pi);

 

(중략)

 

     //뒤집기
     if((pit->second).flip)
     {
      jdd->DrawPictureEx(jdd->GetBackBufferID(), (pit->second).id, ppx+px, ppy+py, NULL, (pit->second).flip);
     }
     //일반 출력
     else
     {
      jdd->DrawPicture(jdd->GetBackBufferID(), (pit->second).id, ppx+px, ppy+py, NULL);
     }
    }

 

2. JDD->DrawPicture 부분.

여기서 뭔짓을 하면 바뀔거같은데 안바뀜


bool JDirectDrawImp::DrawPicture(int iddest,int idsrc,int px,int py,LPRECT pRect)
{
 if(!table[idsrc] || !table[iddest]) return false;

 JobItem* p=new JobItem;
 p->type=JobItem::DrawPicture;
 p->surf1=iddest;
 p->surf2=idsrc;
 p->point1.x=px;
 p->point1.y=py;

 if(pRect)
 {
  p->srcrect=new RECT;
  *p->srcrect=*pRect;
 } else p->srcrect=NULL;

 return AddJobList(p);
}

bool JDirectDrawImp::DrawPictureEx(int iddest,int idsrc,int px,int py,LPRECT pRect,DWORD dwFlags)
{
 if(!table[idsrc] || !table[iddest]) return false;

 JobItem* p=new JobItem;
 p->type=JobItem::DrawStretchedPicture;
 p->surf1=iddest;
 p->surf2=idsrc;
 p->point1.x=px;
 p->point1.y=py;
 p->srcrect=new RECT;
 if(pRect)
 {
  *p->srcrect=*pRect;
 } else {
  p->srcrect->left=0;
  p->srcrect->top=0;
  p->srcrect->right=table[idsrc]->GetWidth();
  p->srcrect->bottom=table[idsrc]->GetHeight();
  pRect=p->srcrect;
 }
 p->destrect=new RECT;
 p->destrect->left=px;
 p->destrect->top=py;
 p->destrect->right=px+pRect->right-pRect->left;
 p->destrect->bottom=py+pRect->bottom-pRect->top;
 if(dwFlags&DPX_HFLIP)
 {
  int t=p->srcrect->right-1;
  p->srcrect->right=p->srcrect->left-1;
  p->srcrect->left=t;
 }
 if(dwFlags&DPX_VFLIP)
 {
  int t=p->srcrect->bottom;
  p->srcrect->bottom=p->srcrect->top;
  p->srcrect->top=t;
 }
 
 return AddJobList(p);
}

 

3. 방안3으로 MLC를 불러올때 확대해서 받는 방법

그러면 만약 1000x700 그림을 1800x1500로 확대하는 것이라 합시다.

물론 중간과정이 있겠죠.

 

그럼 정해진 일정의 지연시간동안,

 

그림1 : 1000x700

그림2 : 1100x800

그림3: 1200x900

...

그림9 : 1800x1500

 

이렇게 변한다고 했을때,

이 한 과정을 위해서 같은 그림을 서로다른 크기로 9개 받아두면 너무 손해잖아!

 

그래서 시도안해봄.

 

어제 이것만 5시간 넘게 했는데 안되서 질문.

조회 수 :
485
등록일 :
2012.07.06
22:19:36 (*.130.137.37)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=free&document_srl=579650

똥똥배

2012.07.07
01:00:41
(*.112.180.75)

문라이브에 DrawStretchPicture인가 하는 게 있습니다.

철자는 정확하지 않으나 Stretch로 찾아보시면 있을 듯.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 2023-09-05 122
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 2016-02-22 4688
2446 오늘 M.NET에서 [1] 포와로' 2004-07-25 483
2445 웃방 잡다 [1] 똥똥배 2008-01-06 483
2444 웃읍시다 [2] 사과사촌 2008-07-01 483
2443 그러고 보면 혼돈강점기 이후 역사가 정리되지 않았는데 똥똥배 2008-10-06 483
2442 오.. 요즘 조용해서 잊고 있었는데. [1] 화이트붐 2013-08-11 483
2441 마크로스 F 메들리 포와로 2008-09-17 484
2440 컴퓨터 맛 갔습니다. [4] 혼돈 2004-06-06 484
2439 할수없군... [5] 장펭돌 2008-08-04 484
2438 혼둠에게도 새해가... [2] 요한 2009-01-27 484
2437 퇴근하면서 든 이런저런 생각들 [1] 똥똥배 2012-11-22 484
2436 긴급! 제13회 똥똥배 대회 심사위원 구합니다. [4] 똥똥배 2013-09-17 484
2435 큰구름의 수수께끼 일단 첫 버전은 만들었는데... [2] 혼돈 2004-06-01 485
2434 추석 인사가 거의 없는걸 슬퍼하시는 똥배님을 위해 [1] 아싸사랑 2011-09-12 485
2433 이 노래 제목점 알려주세요. [1] 케르메스 2007-09-05 485
2432 오늘의 일기 [2] 흑곰 2008-08-18 485
2431 흩날리는 벚꽃잎 [2] 똥똥배 2008-04-08 485
2430 강림 [8] 팽드로 2008-06-08 485
2429 Hit the road jack (Making)- Ray Charles [5] 사과사촌 2008-06-25 485
2428 요즘 명인과 페도르의 모험때문에 웃습니다 [2] file 뮤턴초밥 2008-10-06 485
» 흥크립트 그림 확대나 축소 어떻게 하나요 [1] 흑곰 2012-07-06 485