RPG Maker
2006.01.14 06:04

[RPG2K~XP] 좌표를 통한 범위공격

조회 수 981 추천 수 8 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
예제를 만들만한 시간이 부족하므로 [죄송 ;;] 말로만 설명을 하겠습니다.
또 저는 이론만 알려드릴뿐 구체적인 방법은 언급하지 않겠습니다.

기본적인 원리는 좌표의 이용입니다.

좌표평면에서의 거리 공식을 배우셨다면 이해하기 쉬울껍니다.

(*좌표평면에서의 거리 공식 : d²=(X₂-X₁)²+(Y₂-Y₁)² )
(△루트를 사용할 수 없어 제곱으로 표시하였습니다.)
(초등학생까지 알수있게 풀어서 (거리)×(거리)={(가로)×(가로)}+{(세로)×(세로)} )
(덧셈, 곱셈도 안배우셨다면 낭패;;)

--------------------------------------------------------------------------

일단 플레이어와 몬스터의 좌표가 필요합니다.
그리고 변수가 2+몬스터수만큼 더 필요합니다.

앞의 변수 2개를 임의적으로

- 변수1 : 계산용_X
- 변수2 : 계산용_Y

로 놓겠습니다.

☆1) 원형범위공격

- (계산용_X)=(플레이어좌표_X)
- (계산용_X)-(몬스터1좌표_X)
- (계산용_X)×(계산용_X)

까지 했다면 계산용_X의 값은

- (계산용_X)={(플레이어좌표_X)-(몬스터1좌표_X)}²

위와 같이 됩니다.
계산용_Y의 값 또한 계산용_X과 같은 방법으로 구합니다.

- 변수3 : 몬스터1거리지수

과 같은 방법으로 몬스터의 수만큼 변수를 만들고

- (몬스터1거리지수)=(계산용_X)²+(계산용_Y)²

이렇게까지 했다면 거리지수라는 변수는 거리의 제곱이다라는 결론이 나옵니다.
그러면 이제 각 몬스터마다 거리지수라는 값이 생겼습니다.
(참고로 계산용_X과 계산용_Y가 하나씩이므로 한꺼번에 거리지수를 구하면 안되고)
(X좌표계산, Y좌표계산, 거리지수에 대입한 후 다음것의 거리지수를 구해야합니다.)

이 값을 나열해본다면

(36)(25)(16)(9)(4)(1)(*)(1)(4)(9)(16)(25)(36)
(37)(26)(17)(10)(5)(2)(1)(2)(5)(10)(17)(26)(37)
(40)(29)(20)(13)(8)(5)(4)(5)(8)(13)(20)(29)(40)
(45)(34)(25)(18)(13)(10)(9)(10)(13)(18)(25)(34)(45)
(52)(41)(32)(25)(20)(17)(16)(17)(20)(25)(32)(41)(52)
(61)(50)(41)(34)(29)(26)(25)(26)(29)(34)(41)(50)(61)
(72)(61)(52)(45)(40)(37)(36)(37)(40)(45)(52)(61)(72)

감이 안오신다면 숫자마다 다르게 표현해보죠

(36)(◁)(△)(◎)(○)(☆)(*)(☆)(○)(◎)(△)(◁)(36)
(37)(26)(▷)(◇)(●)(★)(☆)(★)(●)(◇)(▷)(26)(37)
(40)(29)(◀)(◆)(◎)(●)(○)(●)(◎)(◆)(◀)(29)(40)
(45)(34)(◁)(▽)(◆)(◇)(◎)(◇)(◆)(▽)(◁)(34)(45)
(52)(41)(32)(◁)(◀)(▷)(△)(▷)(◀)(◁)(32)(41)(52)
(61)(50)(41)(34)(29)(26)(◁)(26)(29)(34)(41)(50)(61)
(72)(61)(52)(45)(40)(37)(36)(37)(40)(45)(52)(61)(72)

위 표현으로는 뭔가 모르겠군요.
이번엔 4까지의 범위를 표현하겠습니다.

(8)(5)(●)(5)(8)
(5)(●)(●)(●)(5)
(●)(●)(*)(●)(●)
(5)(●)(●)(●)(5)
(8)(5)(●)(5)(8)

어라? 이번엔 8을 제외한 9까지의 범위를 표현하겠습니다.

(18)(13)(10)(●)(10)(13)(18)
(13)(8)(●)(●)(●)(8)(13)
(10)(●)(●)(●)(●)(●)(10)
(●)(●)(●)(*)(●)(●)(●)
(10)(●)(●)(●)(●)(●)(10)
(13)(8)(●)(●)(●)(8)(13)
(18)(13)(10)(●)(10)(13)(18)

이제 감이 확 오실껍니다.
그 다음에 올 것은 몬스터의거리지수가 해당 범위내에 있을 조건분기가 되겠죠.

☆2) 직선형 범위공격

기본적인 방법은 원형범위공격과 같습니다만

그 전에
플레이어가 위 아래로 있을땐 X좌표
플레이어가 좌 우로 있을땐 Y좌표로
우선 범위를 정해줘야합니다.

예를 들면 3줄짜리 직선이 쭉 나가는 마법이라면
플레이어가 위로 향해 있을때

- 계산용_X = {(플레이어좌표_X)-(몬스터1좌표_X)}²= 1 이하

가 되어야겠죠.
그런 다음엔 마법이 뒤까지 나가진 않으니 이번엔 Y좌표로

- (플레이어좌표_Y)-(몬스터1좌표_Y) = 0 이상

처럼 될껍니다.(알만툴은 왼쪽 상단 끝이 0,0이므로 몬스터가 아래에 있다면 값이 영하가 됩니다.)

--------------------------------------------------------------------------

다음과 같이 거리지수를 이용한다면 범위마법을 구성하는데 어려움이 어느정도 덜게 됩니다.
이상 놀고먹는수험생 polaris君이었습니다 (__)
?
  • ?
    のㅏ②뜨 2009.07.06 02:57
    직선거리의 계산공식이라고도 할수 있겠지만
    이건 원의 방정식에 더 가까울수 있을것같습니다
    으헣허허헣 수학도 그냥 배우는게 아니라는 생각이 듭니다
    이런데에 응용까지 할수 있으면 이제 할거 다해먹은걸테죠

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
116 RPG Maker XP버전 이름입력처리 초보자용 린쌍 2006.01.30 520
115 RPG Maker 공격패턴의 다양화 사토루 2006.01.29 1600
114 RPG Maker 죄송합니다!!질문입니다!!!!!!!!!(타일관련;;) 마가미카무이 2006.01.25 421
113 RPG Maker [초급]숲을 가꾸어 봅시다. 카스-오로치 2006.01.24 1415
112 RPG Maker 공격패턴의 다양화 사토루 2006.01.24 295
111 RPG Maker RPG XP 배워보기 <이벤트소멸효과> 덩키동크 2006.01.22 722
110 RPG Maker 프린세스메이커3를 만들어보자!!①.오프닝편 Ress 2006.01.16 1619
109 RPG Maker [토파즈]대화, 선택지, 상인 만들기 양키 2006.01.16 432
108 RPG Maker 육성RPG 『연금술사』 2006.01.16 987
107 RPG Maker [초급]RPG2003 (프로젝트 만들기) 카스-오로치 2006.01.14 416
106 RPG Maker [초급] RPG2003 (숲을 가꾸어봅시다.) 카스-오로치 2006.01.14 417
105 RPG Maker [초급]RPG2003 [숲을 가꾸어 봅시다. -1] 카스-오로치 2006.01.14 309
» RPG Maker [RPG2K~XP] 좌표를 통한 범위공격 1 Polaris君 2006.01.14 981
103 RPG Maker 게임메이커 기본개념 걸인소년 2006.01.14 341
102 RPG Maker 게임메이커 기본개념 걸인소년 2006.01.14 267
101 RPG Maker 게임메이커 기초개념 file 걸인소년 2006.01.14 933
100 RPG Maker [R2K] 타이틀 제작하기 『덩키동크』 2006.01.09 1479
99 RPG Maker 제글읽고 답좀... ONEVlN 2006.01.09 400
98 RPG Maker rpg2000 퀘스트 하는법좀 초보자에게 맞게 ONEVlN 2006.01.08 676
97 RPG Maker 로봇의 변신 시스템 홀리커터™ 2006.01.06 556
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 15 Next
/ 15






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)