본문 바로가기
Game Programming

배열의 방향 바꾸기

by 게임혼 2009. 5. 9.

이미지 함수를 만드는 도중 이미지 배열을 반전시키면서 동시에 픽셀을 제어하는 것을 생각해 보았다.
간편하게 하자면 배열을 반전시키고 그 뒤 픽셀 색상을 조작하면 되는데 이러면 내 기준에서 많은 케이스가
생겨나서 귀찮고 그냥 한번에 하려고 해봤다.

사용자 삽입 이미지

아 머리아파...

 int bBuffD[]; // 타겟
 int bBuffS[]; // 소스
 int i,j;
 int cnt,offset; // 현재 오프셋
 int sdir,ddir; // 배열 제어 방향
 int a,sw;  // 기타 값

 switch(op&0xff)
 {
  case RT_W :
   // 좌우반전
   cnt = 0;
   sdir = 1;
   offset = w;
   ddir = -1;
   sw = w;
  break;

  case RT_WH :
   // 상하좌우반전
   cnt = 0;
   sdir = 1;
   offset = w*h;
   ddir = -1;
   sw = 0;
  break;
 
  case RT_H :
   // 상하 반전
   cnt = 0;
   sdir = 1;
   offset = w*h-w;
   ddir = 1;
   sw = -w;
  break;
 
  default :
  // 이건 바꾸지 않으니까 리턴
   return;
  break;
 }

 for(i = 0; i<h;i++)
 {
  a = i*sw;
  offset += sw;
  for(j = 0; j<w;j++)
  {
  // 추가 제어 로직
   bBuffD[cnt] = bBuffS[offset+a];
   cnt+=sdir;
   offset += ddir;
  }
 }

이렇게 하면 배열의 순서를 바꿀 수 있다.
이미지 조작할 때 쓰면 좋겠다는 생각에 만들어 보았다.

www.gamehon.com www.gamemotor.com

'Game Programming' 카테고리의 다른 글

컬러 믹싱 알고리즘  (0) 2009.07.27
RML 0.1  (0) 2009.05.19
pnglib 사용상 주의  (0) 2009.02.26
플로트랜드 온라인 F-Land Online  (0) 2009.01.01
Data Base Control Server  (0) 2008.12.25