RPG Maker
2005.12.30 07:20

[VB] SRPG의 이동경로는 어떻게? (1)

조회 수 909 추천 수 6 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
카테고리에서; 프로그래밍에 올릴까 했는데..아이디어에 가깝지 않은가해서 여기에 올립니다.

구창도에서 올렸던것인데, 약간 정리해서 개념중심으로 올려볼께요 ㅇㅁㅇ

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

안녕하세요; 처음으로 강좌를 올려보는 성령의분노입니다;
아직 이 강좌가 없는듯 해서 SRPG의 이동경로에 대해 설명해보도록 하겠습니다;;

1. 영걸전에서 개념부터 배워보자.
삼국지 영걸전 기억나시나요? SRPG의 이동경로에 대한 알고리즘을 벌써 접하셨을지도 모르지만, 이미 영걸전에서부터 사용되온 알고리즘이 지금도 뿌리속에 내재되어있지요.
(다른 강좌에서도 영걸전을 주로 예를 들곤 합니다 )

이동력4의 유비가 있습니다( 있다고합시다; ).
우선 장애물이 없는 평원에 유비라는 유닛이 서있습니다 ( 숫자4의 위치 ).


                       1
                   1  2   1
               1  2  3   2  1
           1  2  3  4   3  2  1
              1  2  3   2  1
                 1  2   1
                    1                               ( 약간 입체적으로 기울어졌네요-_-; )


중앙에 있는 유비( 4 )에서 거리차만큼 숫자를 제하면서 1까지 채워보면 이것이 유비의 이동범위가 되는군요( 이동력 4라는 것은 힘닿는데 까지 달리면 4칸간다는 소리죠 )

응용) 장애물(x) 有


                       1
                   x  2   1
               1  2  3   x  x
           x  x  3  4   3  2  1
              x  2  3   2  1
                 1  2   x
                    1        


=>

                      1
                     2   1
              1  2  3      
                 3  4   3  2  1  
                 2  3   2  1
                 1  2  
                    1                    ( 숫자라서 분위기가 안나는군요; )


이런식으로 이동범위는 정해지게 되는겁니다.

코딩을 해볼까요?


2차원 배열을 이용한 맵생성을 합니다.

우선 가로 20칸 세로 30칸의 맵을 만들겠습니다.

Dim Map(20, 30) As Long

그리고 다중루프(for문)를 써, 장애물에는 -99같은 음수를 대입해주시고, 나머지칸은 0으로 대입해주세요.

자 배열에 위와 같은 숫자경로를 새겨봅시다.

10, 10에 유비를 놓습니다. 어떻게 놓느냐 하면

Map(10,10) = 4 유비의 이동력를 적는거죠.

For L = 4 To 2 Step -1 유비의 위치에서 이동력이 1될때까지 돌리는겁니다.

For J = 1 To 20
For K = 1 To 30 모든칸을 돌기 위해서이죠.

If Map(J, K) = L Then  현재 L값을 가진칸을 찾는다면.. ( 처음 돌 때는 유비가 있는곳 )

If Map(J - 1, K) = 0 And J - 1 > 0 And K > 0 And J - 1 < 21 And K < 31 Then Map(J - 1, K) = L - 1
If문의 조건은 옆에 칸에 장애물이 없는지 ( 그 자리의 배열값이 0이면 장애물이 없는거죠? ), 그리고 맵사이즈를 벗어나지 않는지 확인하는 것입니다.

현재 유비의 칸이 선택되었으니( L = 4 ), 상하좌우에는 3을 대입시켜주어야겠죠? ( 위의 그림을 보면.. )

그래서 첫번째 for문에서는 L이 4이므로 상하좌우에 L - 1 ( 즉, 3 )을 대입한 것입니다.
( 우선은 L의 첫번째 루프를 기준으로 설명하겠습니다 )

그리고  그 칸에 이동범위칸를 찍어주면 되겠지요 ( 보통은 파란색 반투명으로 표시되는 ).

J + 1, K 상
J, K + 1 우
J, K - 1 좌 .. 도 위에 같이 해주시면 됩니다.


이런 순서로 찍히게 되겠지요(l의 for문이 도는 순서로)
                                                                                    2
                                        3                                    2     3    2
          4                      3     4    3                        2     3     4    3      2
                                        3                                    2     3    2
                                                                                    2


                                    L = 4                                       L = 3

이렇게 계속 돌면 1까지 가게 되고 Map에 4 ~ 1까지 배열에 입력이 될것입니다.

화면에도 그에 대응해서 이동범위칸 그림이 찍힐 것이고요 ( DX면 Bltfast를 이용하겠죠? )



일단 강좌는 여기서 끝입니다.

두서업고 계획없이 쓰니까 괜히 글만 길어지고 잘 전달이 안되네요;

미약한 실력으로 강좌를 하려니까 부끄럽지만, 도움이 되시는 분 있기를 바랍니다.


다음에는 실제로 그 이동범위로 이동을 하는 법에 대해서 다루도록 하겠습니다. 다음 강좌가 실제로 제목

에 부합되는 이동경로가 되겠습니다.

감사합니다.
?
  • ?
    trs333 2020.07.28 13:33
    이동 가능 경로 표시를 어떻게 해야하는지 막막했는데 좌표에 숫자대입하신 걸 보니 도움이 됐습니다. 아직 정리는 안됐지만 덕분에 답을 찾았습니다. 감사합니다.

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

    Date2018.01.02 CategoryRPG Maker Byzero? Views644
    Read More
  2. [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집

    Date2017.07.14 Category언어/기타 By황금상자 Views702
    Read More
  3. rpg vxa 로 겜만들때 데미지 설정 공식[링크]

    Date2017.06.08 CategoryRPG Maker By준E Views740
    Read More
  4. [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템

    Date2017.03.31 CategoryRPG Maker By준E Views2019
    Read More
  5. JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기

    Date2016.12.24 Category언어/기타 Bytitle: 댓글러lklslel Views851
    Read More
  6. 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요

    Date2016.11.08 Category언어/기타 By마나님이 Views908
    Read More
  7. RPG MV에서 플러그인 오류의 원인에 대하여

    Date2016.07.08 CategoryRPG Maker Bytitle: 댓글러lklslel Views2359
    Read More
  8. RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME)

    Date2016.07.08 CategoryRPG Maker By최저 Views1627
    Read More
  9. 게임의 버전을 짜 보자! - 유의적 버전 2.0.0

    Date2016.06.07 Category언어/기타 ByYanggaeng Views1123
    Read More
  10. 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다!

    Date2016.03.12 CategoryRPG Maker By정궈니 Views2938
    Read More
  11. rpgmv 마우스 지원과 터치 지원이 되니.

    Date2015.10.25 CategoryRPG Maker By팡소리 Views1011
    Read More
  12. RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상.

    Date2015.10.25 CategoryRPG Maker ByHT9MAN Views2246
    Read More
  13. RPG게임 뻔한요소들.

    Date2015.10.05 Category언어/기타 Bytitle: 천무천무 Views1644
    Read More
  14. 자바스크립트와 관련해서 참고할 만한 사이트들

    Date2015.10.04 Category언어/기타 ByMARCO Views921
    Read More
  15. 꿀잼이군요!

    Date2015.05.20 Category언어/기타 By사람님[대회참가] Views873
    Read More
  16. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.06 CategoryRPG Maker Bytitle: 자게이하앵 Views1833
    Read More
  17. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.05 CategoryRPG Maker Bytitle: 자게이하앵 Views748
    Read More
  18. [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계

    Date2015.04.02 Category언어/기타 Bytitle: 천무천무 Views636
    Read More
  19. 오다 주웠습니다.

    Date2015.03.30 Category언어/기타 By사람님[대회참가] Views917
    Read More
  20. 무료 이미지 사이트 Pixabay!

    Date2015.03.28 Category언어/기타 By나작소 Views909
    Read More
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(김원배) | 사신지(김병국)