본문 바로가기
GameMaker강좌[GM8]/RPG강좌

[게임메이커강좌-액션Rpg 강좌]액션Rpg-3-적 유닛(1/2)

by 타락카얀 2013. 10. 15.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

이번 강좌에서는 적 유닛에 대한 설정을 만들어 보도록 합시다.

 

 

(▲적 유닛)

 

 

 

 

 

 

 

 

 

◈적 유닛 만들기(obj_enemy,obj_en1)

 

 

적 유닛으로 간단하게 슬라임을 만들어 봅시다.
우선 유닛으로 사용할 이미지를 준비하고, 스프라이트(spr_en1)로 구성하도록 합니다.

 

 

(▲슬라임 애니메이션 이미지)


강좌에선 단순히 1방향의 이미지를 만들었지만, 플레이어처럼 여러 방향으로 만들어도 됩니다.

 

 

(▲슬라임 스프라이트 이미지)


그리고 Mask Modify 버튼을 눌러 슬라임의 마스크 설정을 하세요.

 

 

(▲마스크 설정)


마스크는 전체를 설정해도 되지만, 보통 바닥과 닿는 밑부분을 기준으로 설정하는 것이 좋습니다.

이제 적 유닛에 대한 설정을 만들기 위해 오브젝트를 만들도록 해요.
먼저 적 유닛들의 Parent로 사용할 오브젝트(obj_enemy)를 만들고, 실제 룸에 배치할 하위 오브젝트(obj_en1)

만듭니다.

     예) obj_enemy(parent오브젝트)-obj_en1(실제 룸에 배치할 하위 오브젝트)

 

 

(▲적 오브젝트)


룸에 배치할 하위 오브젝트(obj_en1)의 Sprite에 준비한 스프라이트를 지정하고, parent에 적 유닛들의 parent

지정하도록 합니다.

적을 설정하기 전에 어떤식으로 게임에 사용될지 생각해보도록 합시다.
강좌에서는 이런 식으로 만들 것입니다.

     1. 슬라임은 룸에서 랜덤 방향으로 움직인다.
     2. 랜덤으로 이동하다 플레이어가 일정거리에 들어오면, 플레이어를 공격하기 위해 다가간다.
     3. 플레이어가 공격 범위에 들어오면, 플레이어를 향해 공격한다.
     4. 플레이어가 이동할 수 있는 거리를 벗어나면, 다시 랜덤으로 이동하게 된다.
     5. 체력이 0이면 파기 시킨다.

룸에 배치되는 적 유닛 오브젝트(obj_en1)로 이동해서, Create 이벤트에 필요한 변수들을 선언하도록 합니다.
먼저 체력에 관한 변수를 선언해요.

 



     ★ obj_en1 - Create 이벤트

     hp=30;//체력
     hp_max=hp;//최대 체력



다음은 이동 속도, 이동 범위와 같은 이동에 관한 변수가 필요하겠지요.

 



     ★ obj_en1 - Create 이벤트

     pspeed=0.5;//이동 속도

     move_on=0;//이동 중인지 체크

     range_min=20;//최소 이동
     range_max=96;//이동 거리(플레이어 기준)
     range_att=25;//공격 범위



공격 설정도 필요할테니, 공격에 관한 변수도 추가하도록 합시다.

 



     ★ obj_en1 - Create 이벤트

     unit_dmg=3;//공격 수치
     unit_def=5;//적 유닛의 방어력
     att_sw=0;//공격 스위치

     stun=0;//공격 받았을 때


 

그리고 지정한 스프라이트의 애니메이션이 너무 빠르다고 생각한다면, 애니메이션의 속도를 조절할 필요가 있습니다.

그 외 설정하고 싶은 변수들을 선언하도록 해요.

 



     ★ obj_en1 - Create 이벤트

     image_speed=0.2;//애니메이션 속도


 

image_speed는 지정한 스프라이트의 애니메이션 속도입니다.
1이 정상 속도(기본값)이며, 0으로 갈수록 느려집니다.

 

Draw 이벤트를 추가하고, 적 유닛을 표시하도록 해요.

 



     ★ obj_en1 - Draw 이벤트

     col=c_white;
     draw_sprite_ext(sprite_index,-1,x,y,1,1,0,col,1);



이제 이동을 시켜야겠지요.
Step 이벤트를 추가하고, 이동에 관한 설정을 만듭시다.
일단 랜덤 위치로 이동시키는 것부터 해볼까요.

 



     ★ obj_en1 - Step 이벤트

     if move_on=1{//이동
     x+=lengthdir_x(pspeed,direction)*place_free(x+lengthdir_x(pspeed,direction),y);
     y+=lengthdir_y(pspeed,direction)*place_free(x,y+lengthdir_y(pspeed,direction));
     }

     if move_on=0{direction=irandom(4)*90;alarm[5]=irandom_range(30,60);move_on=1;}
     //방향을 정하고, 재 방향을 정하기 위해 딜레이를 설정한 다음, 재실행을 방지하기 위해 스위치를 변경함.



이것은 이동 스위치 move_on 이 0일때 방향을 랜덤으로 설정하고, 1일때, 이동하게 됩니다.

만약 이동할때, 이동방향을 place_free로 체크하여 solid 오브젝트가 있다면 값을 0으로 반환해 이동을 못하게 합니다.


일정 시간이 지난 후에 방향을 다시 정해야겠지요.
알람 이벤트(Alarm 5)를 추가하고, 다시 방향을 정하도록 이동 스위치(move_on)를 초기화하도록 합니다.

 



     ★ obj_en1 - Alarm 5 이벤트

     move_on=0;



다음은 플레이어가 일정한 거리에 들어왔을때, 플레이어 방향으로 이동 시켜 봅시다.

 



     ★ obj_en1 - Step 이벤트

     //-------------------------▼ 이벤트 추가
     if instance_exists(obj_player){aa=instance_nearest(x,y,obj_player);

     dis=point_distance(x,y,aa.x,aa.y);//플레이어와의 거리 측정
     if dis<range_max{//플레이어가 유닛이 이동할 수 있는 거리에 들어 왔는가?
     if dis>range_min{//플레이어가 최소 거리에 들어 갔는가?
     mp_potential_step(aa.x,aa.y,pspeed,0);//유닛 이동
     move_on=-1;}}
     else{if move_on=-1{move_on=0;}}//이동할 수 있는 거리를 벗어나면 랜덤으로 이동할 대기함.

     }else{if move_on=-1{move_on=0;}}
     //-------------------------▲ 이벤트 추가

     //랜덤 이동
     if move_on=1{
     x+=lengthdir_x(pspeed,direction)*place_free(x+lengthdir_x(pspeed,direction),y);
     y+=lengthdir_y(pspeed,direction)*place_free(x,y+lengthdir_y(pspeed,direction));
     }
     if move_on=0{direction=irandom(4)*90;alarm[5]=irandom_range(30,60);move_on=1;}



중요 부분에 설명이 있지만, 이것은 플레이어와의 거리가 슬라임이 이동할 수 있는 거리인지 체크해서
근접할 수 있는 최소 거리까지 이동 시키게 됩니다.
그리고 만약 거리를 벗어난다면 이동 스위치 move_on을 0으로 만들어 랜덤 이동하도록 대기하게 만드는 거죠.

 

[참고]

     mp_potential_step(x,y,speed,checkall)

     이것은 지정한 (x,y)좌표에 지정한 속도로 이동시킬 때 사용하는 함수입니다.

     무엇보다도 이 함수는 이동시 Solid오브젝트와 충돌시 회피하며 돌아서 이동시킬 때 유용한 함수입니다.

     checkall에 0값을 지정하면 Solid오브젝트만 회피시켜 이동시키고, 1값을 지정하면 모든 오브젝트를 돌아서

     이동하게 됩니다.


슬라임이 이동하다 겹칠 때를 대비해, 위치를 서로 떨어뜨리는 이벤트를 만들어 봅시다.
해당 유닛의 parent 오브젝트(obj_enemy)와의 충돌 이벤트를 추가하고, 아래와 같이 작성합니다.

 



     ★ obj_en1 - obj_enemy와의 충돌 이벤트

     spd=1;
     dir=point_direction(x,y,other.x,other.y)+180;
     x+=lengthdir_x(spd,dir)*place_free(x+lengthdir_x(spd,dir),y);
     y+=lengthdir_y(spd,dir)*place_free(x,y+lengthdir_y(spd,dir));


 

이렇게 하면 parent 가 같은 유닛끼리 충돌 했을 때, 충돌하지 않을 때까지 서로 밀려나게 됩니다.

 

슬라임이 파기될 때 이펙트를 생성하도록 해볼까요.
적이 파기될 때 생기는 이펙트의 이미지를 준비하도록 해요.
강좌에서는 애니메이션이 재생되는 이미지로 해보겠습니다.

 

 

(▲ 슬라임 애니메이션)


그리고 스프라이트로 구성하도록 해요.

 

 

(▲ 스프라이트)


중심점은 적 이미지 기준으로 맞추면 됩니다.

그리고 이펙트를 구성하기 위해 오브젝트(obj_en1_dead)를 하나 만들고, sprite에 이전에 준비한 이미지를 지정해요.

 

 

(▲이펙트 오브젝트)


만약 애니메이션의 속도를 조절하고자 한다면, Create 이벤트를 추가하고 애니메이션의 속도를 변경하도록 합니다.

 



     ★ obj_en1_dead - Create 이벤트

     image_speed=0.2;//애니메이션의 속도



image_speed는 지정한 스프라이트의 애니메이션 속도입니다.
1이 정상 속도(기본값)이며, 0으로 갈수록 느려집니다.

이제 깊이에 대해 설정해야겠지요.
End Step 이벤트를 추가하고, 깊이에 대한 설정을 추가하도록 해요.

 



     ★ obj_en1_dead - End Step 이벤트

     depth=floor(room_height-y);



애니메이션이 끝났을때, 오브젝트를 없애야겠지요.
이벤트 메뉴OtherAnimation End 이벤트를 추가하고, 파기 이벤트를 작성하도록 해요.

 



     ★ obj_en1_dead - Animation End 이벤트

     instance_destroy();



Animation End 이벤트는 스프라이트 애니메이션이 끝날때 발생하는 이벤트입니다.
따라서 스프라이트의 애니메이션이 끝날 때, 오브젝트는 파기되겠죠.

이제 이것을 슬라임의 Destroy 이벤트에 추가하면 됩니다.

 



     ★ obj_en1 - Destroy 이벤트

     instance_create(x,y,obj_en1_dead);



이왕이면 슬라임이 파기될 때 이전 강좌에서 만들었던 아이템도 떨궈뜨려볼까요.

 



     ★ obj_en1 - Destroy 이벤트

     if irandom(3)=1{
     instance_create(x,y,choose(obj_item0,obj_item1,obj_item3));
     }



irandom은 0~지정한 값 사이의 임의의 정수를 반환하는 것입니다.
위와 같은 상황은 0~3값 중 1이 나올 때 아이템을 생성하는 이벤트입니다.
아이템이 나올 확률을 높게 하려면 값을 작게 지정하면 되고, 확률을 낮게 설정하려면 값을 큰 수로 지정하면 되겠죠.

choose는 지정한 인자중 랜덤으로 1개를 반환하는 것이며, 지정할 수 있는 인자는 최대 16개까지 지정할 수 있습니다.

적들의 공통적인 이벤트는 적들의 parent에서 설정하면 됩니다.
예를 들면 룸 밖으로 나가지 않게 하거나, depth설정, 체력이 0이 되었을 때와 같은 것 말이죠.
그러한 설정을 추가하도록 합시다.

적들의 parent(obj_enemy)로 이동해서 Step 이벤트에, 이러한 설정을 작성하도록 해요.

 



     ★ obj_enemy - Step 이벤트

     depth=floor(room_height-y);//depth설정

     x=max(16,min(x,room_width-16));
     y=max(16,min(y,room_height-16));//룸밖으로 나가지 않게 함

     if hp<=0{hp=0;instance_destroy();}//HP가 0일때 현재 오브젝트를 파기함



적 오브젝트가 파기될때 플레이어의 경험치를 올려주도록 할까요.
이것은 적유닛의 Destroy 이벤트에서 바로 작성하시면 됩니다.
강좌에서는 간단하게 적 parent(obj_enemy)Destroy 이벤트에서 이벤트를 작성하여, 적유닛의

Destroy 이벤트에서 상속하는 방식을 쓰겠습니다.

 



     ★ obj_enemy - Destroy 이벤트

     enemy_exp=floor(hp_max/2);
     if hp<=0{global.player_exp+=enemy_exp;}



강좌에선 최대 체력의 반을 플레이어의 경험치로 추가하도록 설정했습니다만, 여러분이 생각하신대로 이벤트를

작성하시면 됩니다.
그리고 적 유닛들의 각 Destroy 이벤트에도 parentDestroy이벤트를 상속시켜야 합니다.

(룸에 배치되는 유닛에 parent와 동일한 이벤트가 있으면, parent 오브젝트의 이벤트는 무시하고, 룸에 배치되는

유닛의 이벤트만 실행되기때문에 parent오브젝트의 이벤트도 실행시키려면 event_inherited를 사용하여 이벤트를

실행시켜야함)

 



     ★ obj_en1 - Destroy 이벤트

     //-------------------------▼ 이벤트 추가
     event_inherited();
     //-------------------------▲ 이벤트 추가


 

이렇게 하면 parentDestroy 이벤트도 같이 실행합니다.

물론 적 유닛의 각 Destroy 이벤트에서 따로 작성하여 바로 경험치를 올려 주어도 됩니다.

제대로 작동하는지 룸에 배치하고, 테스트 해봅시다.






◈적 유닛의 공격(obj_en_att)

 

 

간단하게 슬라임의 공격을 만들어 볼까요.
공격을 만들기 위해 오브젝트(obj_en_att)를 하나 만듭니다.

 

 

(▲슬라임의 공격 오브젝트)


슬라임의 공격은 눈에 보이지 않고, 플레이어의 사정거리에서 공격했다는 표시만 줄 것입니다.
따라서 sprite에 마스크용으로 적당한 크기의 스프라이트를 지정하도록 하고, visible을 체크해제합니다.
그리고 Create 이벤트를 추가하고, 플레이어에게 피해를 입힐 데미지 수치를 변수로 선언하도록 합니다.

 



     ★ obj_en_att - Create 이벤트

     att=0;



강좌에선 공격을 하는 슬라임에서 수치를 정하기 위해 0으로 했지만, 직접 수치를 넣어 만들어도 됩니다.
다음은 플레이어와 충돌시 플레이어에게 피해를 입혀야 겠지요.
플레이어(obj_player)와의 충돌 이벤트를 추가하고, 이벤트를 작성하도록 해요.

 



     ★ obj_en_att - obj_player와의 충돌 이벤트

     dmg=att-floor(global.player_def_total*0.5);//플레이어에게 입힐 데미지 설정


     if dmg<=0{if irandom(3)=1{dmg=0;}else{dmg=1;}}//데미지가 0일때 0 또는 1의 데미지 재설정

     else{dmg=max(1,irandom(dmg));}//데미지가 0이 아니라면 데미지는 랜덤

     if irandom(5)=1{dmg=att;}//1/6확률에 최대수치로 피해를 줌

     if global.player_hp>dmg{global.player_hp-=dmg;}else{global.player_hp=0;}//플레이어의 체력 감소
     other.x+=lengthdir_x(5,direction);
     other.y+=lengthdir_y(5,direction);//플레이어(other)를 밀어버림

     other.stun=10;//플레이어(other)가 적에게 공격당했단 것을 표시하기 위한 딜레이

     instance_destroy();//공격 오브젝트 파기



이것은 플레이어의 방어력에 맞추어 플레이어에게 데미지를 입히도록 설정한 것입니다.
여러분이 생각하시는 데미지 수치 방법대로 설정하시면 됩니다.

[참고]
     irandom(값) - 이것은 이전에도 보았듯이 지정한 수치내에서 임의의 값을 반환시키는 것입니다.
     또한 확율로도 사용할 수 있는데, 반환한 값은 0을 포함합니다.
     확률로 사용할 비슷한 기능의 함수는 choose(값1,값2,값3, ... ,값16)이 있습니다.

플레이어를 공격했을때 이펙트를 발생시켜볼까요.
먼저 이펙트로 사용할 이미지를 준비하고 스프라이트를 구성하도록 해요.

 

 

(▲강좌에서 사용할 공격 이펙트)


강좌에선 스프라이트를 따로 만들지 않고, 이전 강좌에서 사용했던 스프라이트(spr_effect1)에 추가했습니다.
이펙트 또한 이전에 만든 이펙트용 오브젝트를 사용하겠습니다.
여러모로 설정이 많이 들어간 이펙트였죠.

여기에선 이미지를 1장씩 사용하지만, 만약 애니메이션이 들어간 이미지라면 스프라이트를 따로 구성하셔야 해요.

아무튼 다시 적 공격 오브젝트(obj_en_att)로 돌아가 플레이어(obj_player)와의 충돌 이벤트에 이펙트를 생성하는

이벤트를 추가하도록 합니다.

 



     ★ obj_en_att - obj_player와의 충돌 이벤트

     dmg=att-floor(global.player_def_total*0.5);
     if dmg<=0{if irandom(3)=1{dmg=0;}else{dmg=1;}}
     if irandom(5)=1{dmg=att;}

     if global.player_hp>dmg{global.player_hp-=dmg;}else{global.player_hp=0;}
     other.x+=lengthdir_x(5,direction);
     other.y+=lengthdir_y(5,direction);

     other.stun=10;

     //-------------------------▼ 이벤트 추가

     it=instance_create(other.x,other.y,obj_ef1);//이펙트 생성
     it.spr=spr_effect1;
     it.img=1;
     it.sca=0.5;

     //-------------------------▲ 이벤트 추가

     instance_destroy();


 

애니메이션 형태라면 슬라임이 파기될때 생성되는 이펙트(obj_en1_dead)를 응용하여 위 이벤트 대신 생성하면

되겠죠.

 

만약 적 유닛이 공격 오브젝트를 생성했을 때, 플레이어가 없다면 이벤트를 발생시키지 못하고, 룸에 그대로

남아있을 수 있습니다.
이럴때는 자동으로 파기 시켜야 하지요.
알람 이벤트(Alarm0)을 하나 추가하고, 오브젝트를 파기시키도록 해요.

 



     ★ obj_en_att - Alarm0 이벤트

      instance_destroy();



다시 슬라임 오브젝트(obj_en1)로 돌아가 Step 이벤트에 공격 이벤트를 작성하도록 합니다.

 



     ★ obj_en1 - Step 이벤트

     if instance_exists(obj_player){aa=instance_nearest(x,y,obj_player);

     dis=point_distance(x,y,aa.x,aa.y);
     if dis<range_max{
     if dis>range_min{
     mp_potential_step(aa.x,aa.y,pspeed,0);
     move_on=-1;}}
     else{if move_on=-1{move_on=0;}}

     //-------------------------▼ 이벤트 추가

     if dis<range_att{//플레이어가 공격 범위에 들아왔는가?
     if att_sw=0{//스위치가 0일때만
     aa=instance_create(aa.x,aa.y,obj_en_att);//공격 오브젝트 생성
     aa.direction=direction;//공격 유닛은 슬라임의 방향
     aa.att=unit_dmg;//공격 데미지 입력
     aa.alarm[0]=2;//자동 파기

     alarm[0]=irandom_range(120,240);att_sw=1;}//공격 딜레이
     }

     //-------------------------▲ 이벤트 추가

     }else{if move_on=-1{move_on=0;}}


     //moving random position
     if move_on=0{direction=irandom(4)*90;alarm[5]=irandom_range(30,60);move_on=1;}
     if move_on=1{
     x+=lengthdir_x(pspeed,direction)*place_free(x+lengthdir_x(pspeed,direction),y);
     y+=lengthdir_y(pspeed,direction)*place_free(x,y+lengthdir_y(pspeed,direction));
     }



이것은 플레이어가 공격 범위에 들어왔을때, 공격 오브젝트를 생성해 공격을 하고, 재 공격을 하기 위해 약간의

딜레이를 주는 것입니다.
알람 이벤트(Alarm0)를 추가하고, 재 공격을 위해 공격 스위치(att_sw)를 초기화시키도록 해요.

 



     ★ obj_en1 - Alarm 0 이벤트

     att_sw=0;


 

이렇게 하면 슬라임이 다시 재공격을 할 수 있겠지요.

반대로 플레이어로부터 공격을 받았을 때, 적 유닛에게도 표시같은 것을 해주어야 겠지요.

 



     ★ obj_en1 - Step 이벤트

     if stun>0{stun-=1;}else{stun=0;}



stun 변수가 0보다 클때, -1씩 감소시키는 것으로 딜레이로 사용할 수도 있어서, 여러가지 이벤트를 만들 수

있을 겁니다.
강좌에선 간단하게 stun 변수가 0보다 클때, 유닛을 빨간색으로 만들도록 하겠습니다.
Draw 이벤트에 이러한 이벤트를 작성하도록 합니다.

 



     ★ obj_en1 - Draw 이벤트

     col=c_white;

     //-------------------------▼ 이벤트 추가

     if stun>0{col=c_red;}//색을 혼합 시킴

     //-------------------------▲ 이벤트 추가

     draw_sprite_ext(sprite_index,-1,x,y,1,1,0,col,1);



이렇게 하면 플레이어로부터 공격을 받았을때, 적 유닛은 빨간색으로 혼합시켜 표시하게 됩니다.

그리고 stun 변수가 0이 되면, 다시 원래의 이미지로 보이겠죠.


이왕 한김에 플레이어 오브젝트(obj_pl)Draw 이벤트도 같이 처리합시다.
먼저 Create 이벤트에 변수를 추가하고,

 

 

     ★ obj_pl - Create 이벤트

     //-------------------------▼ 변수 추가
     stun=0;



Draw 이벤트에 이벤트를 삽입합니다.

 



     ★ obj_pl - Draw 이벤트

     col=c_white;

     //-------------------------▼ 이벤트 추가

     if stun>0{col=c_red;}

     //-------------------------▲ 이벤트 추가

     if move_on=0{
     draw_sprite_ext(spr_move[unit_dir],0,x,y,1,1,0,col,1);
     }
     else{
     draw_sprite_ext(spr_move[unit_dir],-1,x,y,1,1,0,col,1);
     }



이번에는 아래와 같이 플레이어를 공격했을때, 피해를 준 데미지 수치를 띄워 봅시다.

 

 

(▲데미지 수치가 공격하는 대상 캐릭터에 표시됨)


설정을 하기 위해 오브젝트(obj_point_text)를 하나 만들고, depth는 화면 앞에 표시되어야 하니, 음수 값을 넣으시면

됩니다.

 

 

(▲데미지 정보 오브젝트)


먼저 Create 이벤트를 추가하고, 데미지 수치등 필요한 변수들을 선언하도록 해요.

 



     ★ obj_point_text - Create 이벤트

     point=0;//표시할 데미지 수치. 이것은 공격 오브젝트가 직접 수치를 입력할 것입니다.

     alp=2;//투명도겸 딜레이
     fade_spd=0.05;//페이드 속도



이제 텍스트를 표시해야겠지요.
Draw 이벤트를 추가하고 텍스트를 표시하도록 해요.

 



     ★ obj_point_text - Draw 이벤트



     draw_set_font(font0);
     //폰트를 변경하려면 draw_set_font(폰트)를 사용.
     c=c_white;draw_text_color(x,y,string(point),c,c,c,c,alp);//글자 표시



폰트 변경은 draw_text이전에 draw_set_font(사용할 폰트 이름)를 추가하면 변경된 폰트를 사용할 수

있습니다.

그리고 이 오브젝트를 띄운 후, 얼마간의 딜레이 후에 파기 시켜야 겠지요.
이것은 점점 투명해진 후 파기하도록 합시다.
Step 이벤트를 추가하고, 이벤트를 작성하도록 해요.

 



     ★ obj_point_text - Step 이벤트

     if alp>0{alp-=fade_spd;}else{instance_destroy();}



이것은 투명도 alp 가 0이 될때 까지 점점 투명해지고, alp 가 0이 되면 파기되는 것입니다.

이제 이것을 적 유닛의 공격 오브젝트(obj_en_att)플레이어와의 충돌 이벤트에서 생성하면 됩니다.

 



     ★ obj_en_att - obj_player와의 충돌 이벤트

     dmg=att-floor(global.player_def_total*0.5);
     if dmg<=0{if irandom(3)=1{dmg=0;}else{dmg=1;}}
     if irandom(5)=1{dmg=att;}

     if global.player_hp>dmg{global.player_hp-=dmg;}else{global.player_hp=0;}
     other.x+=lengthdir_x(5,direction);
     other.y+=lengthdir_y(5,direction);

     other.stun=10;

     it=instance_create(other.x,other.y,obj_ef1);
     it.spr=spr_effect1;
     it.img=1;
     it.sca=0.5;

     //-------------------------▼ 이벤트 추가

     it=instance_create(other.x,other.y-8,obj_point_text);
     it.point=dmg;//피해를 입힌 데미지 수치
     it.vspeed=-1;//위로 떠오르는 듯한 효과를 줌

     //-------------------------▲ 이벤트 추가

     instance_destroy();



이렇게 하면 적 공격 오브젝트가 플레이어와 충돌하게 되면, 피해 입힌 데미지 수치를 대상 오브젝트에게

띄우게 됩니다. 그리고 천천히 올라가며 이미지가 점점 투명해지다 없어지게 됩니다.

 

 

 

 

 

- 다음 강좌에서 계속 -

 

 

 

 

 

300x250

댓글