몬스터와 동료는 주인공과는 다른 객체입니다.
주인공은 유저의 의지대로 움직이는 객체라면 몬스터와 동료는 스스로의 의지가 없기 때문에
만드는 사람이 모든 행동을 하나하나 만들어줘야 합니다.
그 둘의 이벤트를 발생 시키는 조건?
몬스터와 동료 모두 근접전만을 펼친다는 가정하로 말씀드립니다.
몬스터와 동료가 서로를 인지하려면?
서로 인지 가능한 범위내에 들어와야겠죠?
몬스터의 시야아 동료의 시야 범위를 지정해줍니다.
이정도는 할 수 있습니까?
몹의 시야와 동료의 시야 변수를 지정해두고
그 변수 만큼 최소,최대의 XY 범위를 지정해주어 시야 범위를 지정해줍니다.
혹시 이 과정을 모르겠다고 한다면 자세히 설명 해드립니다.
그 다음 동료든 몬스터든 상대가 자신의 시야의 안으로 들어왔을때
그 이벤트로 향하게 이동시켜주면 됩니다.
몬스터와 동료가 싸우려면?
가까운 거리에 붙어있어야겠죠?
이때는 몬스터와 동료가 모두 근접전으로만 치고 박는다는걸 가정으로 합시다.
(그개 가장 보편적이고 쉬우니까)
위에서 지정한 범위로 서로를 인지해서 가까이 붙었다 합시다.
근데 서로 가까운 거리인지 먼 거리인지 어떻게 인식 시키냐?
몬스터와 동료의 좌표룰 구해 그 차이를 구해주면 됩니다.
예를 들어볼까요?
몬스터의 좌표는 5,5
동료의 좌표는 5,6
이때 몬스터와 동료의 좌표 차이는 0.
몬스터와 동료의 좌표 차이는 1.
따라서 서로의 거리는 1이므로 붙어있는 상황입니다.
서로의 차이를 구하는 방법은 서로의 X,Y 좌료는 감산 해주면 되는데,
이때 나온 값이 -1이라면 -1로 곱해줘서 양의 정수로 바꿔주면 됩니다.
자, 가까운 거리에 붙어있음을 인식했다.
근데 상대를 공격하려면?
상대를 정면으로 바로보고 있어야 한다.
예를 들어 동료가 몬스터를 공격할 것이고 서로의 거리를 1이라 가정합시다.
이때 동료가 바라보는 방향을 조건분기로 해서
위를 바라보고 있을때 Y좌표를 -1.
오른쪽을 바라보고 있을때 X좌표를 +1.
아래를 바로보고 있을때 Y좌표를 +1.
왼쪽을 바라보고 있을때 X좌표를 -1.
이렇게 구한 좌표와 몬스터의 좌표가 일치 한다면 서로 치고박고 하게 해주시면 됩니다.
즉, 동료와 몬스터가 서로 치고박게 하려면 3가지의 조건을 충족 시켜야합니다.
1.시야 내에 들어와 있을것.
2.최대한 가까이 붙어있는지 거리를 잴 것.
3.거리가 최대한 가까운 거리일때 상대를 정면으로 바라보고 있을때.
설명이 어려웠나요?
저는 쉽게 설명을 할줄 몰라서 큰일입니다. -_-;;;
0~9까지의 키를 눌렀을때 이벤트를 실행 시키는 방법은
해당 숫자키의 입력 처리를 받게끔 해준 다음에 (이건 설명 안 합니다.)
각 숫자키의 고유 번호 변수를 조건 분기로 해줍니다.
0키의 변수는 10.
1키의 변수는 11.
이런식으로 9번 키의 변수는 19입니다.
따라서 0~9번 까지의 키를 별개의 이벤트로 실행 시켜주려면 총 10개의 조건분기가 필요합니다.
다른 이벤트와 접촉해서 정기적으로 병렬 처리되는 이벤트를 중단 시키려면,
진행되던 이벤트에 쓰이던 스위치 또는 변수를 조건값 이외로 바꿔주시면 됩니다.
스위치의 경우는 OFF 시켜주시면 되고,
변수의 경우 시작 조건이 1 이상이라면 단지 0으로 바꿔주는 것으로 이벤트를 중단시킬 수 있습니다.
설명 정말 어렵죠? ;;;