[펌] [ 강 좌 ] Fade In Fade Out
예전에 강좌도 별루 없구 그래서 혼자 만들어 본건대요 한번 해볼까
게임을 시작하실때 어두워 지면서 환해 지는것 이죠 그 효과입니다.
픽셀을 조작해서 가능하죠 보통게임에 필수죠 예전 2D를 한참 할때는 강좌들이
많았는대 요즘 통 없죠 그러나 3D든 2D든 로그 뜰때 필수적으로 있다싶이하죠 궁금하면
게임실행 시켜보세요 그럼 원리를 보죠 한나의 픽셀 지금은 2BYTE기준으로 설명을 하겠습니다
그리고 565모드로요 그럼 이미지는
R G B
| | | | | | | | | | | | | | | | |
저런식으로 들어 있겠죠 그럼 페이디인의 원리는 뭐냐 원래 그림에서 어둡게 만드는 거죠
RGB각각 한칸씩이동하면 한단계식 어두어 지죠
그럼 R >> 1 이런씩으로 하면 한칸 이동을 하겠죠 그러나 뒤에 이미지들이 영양을 받죠
오브플라어가 생겨 픽셀의 손상이 온답니다.
그럼 나눠야 겠죠
그럼 쉬프트 연산을 해서 열라 나눕니다 쉬프트 연산을 모르신다면 C참고해주세요
좀더 효율적으로 속도를 위해 MASK로 해줘볼까요
BYTE R,G,B;
R = (데이타 >> 8)&0x00F8);
G = (데이타 >> 3)&0x00FC);
B = (데이타 << 3)&0x00FF);
자 그럼 이제 각자 한칸씩 밀어줍니다.
근대 저는 단계를 실시간으로 두면서 어두우면서 밝아지게 해볼까요
(R>>3) * level;
(G>>3) * level;
(B>>3) * level;
그럼 level로 단계를 두면서 사용이 가능하죠
이제 수정된 픽셀들을 다시 565로 하나의 WORD형으로 만들어 줘야저
그래서 이번에는 다시 시프트를 해서 하나의 데이타로 담습니다.
데이타 = (WORD)(((R >> 3) << 11) | ((G >> 2) << 5) | (B >> 3));
이런씩으로요 요즘 컴퓨터가 32비트기 때문에 4BYTE한다면 더 효율적이겠죠
한번씩들 응용해보세요
제가 설명을 잘 못하는 편이라 궁금하시면 덧글을 남기시면 제가 자세이 설명해 들이죠
'나만의 강의' 카테고리의 다른 글
[펌] 나와 너를 위한 10가지 충고 (0) | 2004.11.27 |
---|---|
[펌] 게임제작 관련 사이트 - 네이버 디렉토리 (2) | 2004.09.18 |
[펌] 질문하시기에 앞서... (0) | 2004.09.10 |
scanf의 버그(?) (5) | 2004.09.04 |
[펌] 포인터는 정말 우스워 (0) | 2004.08.25 |