강좌를 보시기전에.. 이번 강좌역시 이론적인 설명만을 하겠습니다.. 소스는 전혀 포함하지 않습니다..
어제에 이어 이제 각케릭의 움직임을 제어하는 방법에 대해서 알아봅도록 하죠.. 뭐 소스 자료실에 올린 소스를 보시면 다 아실듯하지만 그래도 간단한 알고리즘정도는 설명해두면 소스를 보시는데 이해가 빠를 거라 생가되어 올립니다..
몬스터는 2종류가 있습니다.. 선공몬스터 , 비선공 몬스터
즉 선공은 특정구역내 케릭터가 접근하면 공격을 하는 몹입니다.. 비선공은 케릭터가 먼저 공격하지 않는 한 공격을 하지 않는 몹을 말합니다..
소스에서는 무조건 선공몹으로 지정해두었습니다..
계산 공식은 다음과 같이 하였습니다..
만일 (케릭터.좌변 > (몹.좌변+폭)) 몹.좌변 + 1; 아니면 만일((케릭터.좌변+폭) < 몹.좌변) 몹.좌변 + 1;
이 두 명령은 4방 명령을 모두 설명하겠습니다..
위명령은 보면 +폭이 들어가있다 이것은 케릭터와 몹의 접촉 부분을 폭만큼 여유를 준것이다..
즉 케릭터와 몬스터 겍체는 1차원이 아닌 2차원 즉 공각을 가지고 있다..
ㅁㅁㅁㅁㅁㅁ ㅁ ㅁ ㅁㅁㅁㅁㅁㅁ I <------>I 이 양쪽쭝 어느 하쪽을 감지하도록 한 명령이다..
위와 같은 명령 방식으로 좌변과 폭을 윗변과 높이로 바꾸면 상하를 감지하는 명령이 되게 된다..
다음 이명령을 완성하여 시계에 넣고 무한 반복을 하게되면 몹은 무조건 케릭터만을 쪽게 된다..
그럼 이제 케릭터를 움직여 볼까요 케릭터는 로 움직일것인지 마우스로 움직일것인지를 선택한다..
키로 한다면 간단하다 키가 입력받았을때 상하를 원한다면 +나 -만금 값을 주면된다.. 즉 특정키가 눌리때 다음과 같이 명령 하면된다..
케릭터.윗변:=케릭터.윗변+1; 이렇게 하면 케릭터는 위로 1만큼 이동한다.. 물론 아래로 가게 하고싶다면 +1대신 -1을 입력하면된다.. 그리고 좌우로 이동하고 자한다면 윗변 대신 좌변을 입력하면된다..
하나 마우스로 케릭터를 이동하고자한다면 좀 색다른 알고리즘을 요한다..
우선 초기화 명령에 실수를 마우스x와 마우스y를 지정해줘야한다.. 그리고 맵이 되는 객체(예제 소스에는 창이 될것이다..) 마우스가 눌렸을때에 마우스가 클릭한 좌표값x,y를 실수에 값을 준다.. 그리고 시케에다 몬스터가 케릭터를 따라가는 명여을준다.. 대신 몹스터값은 케릭터로 지정하고 케릭터값은 위에서 설정한 마우스x,y값이 될것이다.. 즉 몬스터가 케릭터를 쫒듯 마우스의 클릭위치를 쫒게 된다..