2019년 9월 1일 일요일

GMS2 게임에서 맞았을때 효과, sprite draw를 특정색으로 변하게 하는 효과 (Drawing a sprite as one color , Hittng effect in GMS2)


게임에서 맞았을때 효과 ( sprite draw를 특정색으로 변하게 하는 효과)


어떤 효과인지 아래를 참고 바랍니다.
주인공이 적을 맞혔을때 몸이 흰색으로 변하는 효과입니다.


블랜더 모드

위 동영상 예제에서는 주인공의 경우 빨간색으로 변경되는 화면을 볼 수 있습니다. 해당처리는 draw시 블랜더 모드를 사용하고 있습니다만, 전체적으로 빨간색으로 변경하지는 못합니다.

var mapc = c_white;
if(hurtStart>0){
 mapc = c_red;
}

draw_sprite_ext(sprite_index, image_index, x, y, facing * xscale, yscale, 0, mapc, image_alpha);
draw_sprite_ext(guntype_sprite_index, 0, x, y+3+bo, facing * xscale, yscale, 0, mapc, image_alpha);




구현은 간단

draw전 gpu_set_fog 함수를 이용합니다. 함수의 설명은 아래와 같습니다. start, end를 2d게임에서 0을 전달함으로서 해당 sprite를 안개로 인식하게 합니다.

gpu_set_fog(enable, color, start, end)
   enable : 사용   color : 안개 색상   start : 카메라의 위치를 중심으로 안개를 적용할 시작위치(투명)   end :  카메라의 위치를 중심으로 안개를 적용할 끝위치(불투명)


구현 소스


if( hurt==1 ){
 gpu_set_fog(1,c_white,0,0);
 draw_sprite_ext(sprite_index, image_index, x, y, facing * 1, 1, image_angle, c_white, image_alpha);
 gpu_set_fog(0,0,0,0);
}else{
 draw_sprite_ext(sprite_index, image_index, x, y, facing * 1, 1, image_angle, c_white, image_alpha);
}













댓글 없음:

댓글 쓰기