RPG Maker
2006.01.14 06:04

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

조회 수 1018 추천 수 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君이었습니다 (__)
?

  1. 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법

  2. [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집

  3. rpg vxa 로 겜만들때 데미지 설정 공식[링크]

  4. [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템

  5. JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기

  6. 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요

  7. RPG MV에서 플러그인 오류의 원인에 대하여

  8. RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME)

  9. 게임의 버전을 짜 보자! - 유의적 버전 2.0.0

  10. 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다!

  11. rpgmv 마우스 지원과 터치 지원이 되니.

  12. RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상.

  13. RPG게임 뻔한요소들.

  14. 자바스크립트와 관련해서 참고할 만한 사이트들

  15. 꿀잼이군요!

  16. [RPG2000/3 팁] 간편한 이벤트 단축키

  17. [RPG2000/3 팁] 간편한 이벤트 단축키

  18. [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계

  19. 오다 주웠습니다.

  20. 무료 이미지 사이트 Pixabay!

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 51 Next
/ 51


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

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