작성자 | 판밍 | ||
---|---|---|---|
작성일 | 2018-02-11 00:28:44 KST | 조회 | 1,021 |
첨부 |
|
||
제목 |
[해결][맵첨부] 미로 제작의 트리거 만드는데 도움을 요청
|
해결
실행이라는 트리거를 하나 더 만들었습니다.
이 트리거에서는
while을 이용해 검증트리거를 제가 원하는 미로가 될 때 까지 작동시키는 방식입니다.
질문을 올리고 계속 연구하다보니
내용이 조금 많이 달라져서 삭제하고 글을 다시 올립니다.
https://www.playxp.com/sc2/maps/tip/view.php?article_id=5580850&sub=sc2#!0
미로는 위 글과 같은 방식으로, 이동 경로 비용을 이용해 구성하고 있습니다.
현재 하고 있는 것
이러한 체스판 형태의 지도를 만들고 있으며
노랑/빨강칸에는 무작위로 군수공장이 생성되어 벽을 역할을 하며 미로가 형성됩니다.
생성 트리거 입니다.
1번 구역부터 519번 구역 중 랜덤한 곳에 군수공장을 1개 생성하고
이동 경로를 검증합니다.
검증은 맵 중앙의 프로토스 신호소에서 12/3/6/9시 방향에 위치한 테란 신호소로 이동 경로가 성립하는지 확인하고
성립하지 않으면, 생성한 군수공장을 제거하는 형식입니다.
그렇게 해서 미로를 생성했습니다.
일단 맵 중앙의 프로토스 신호소에서 12/3/6/9시 방향에 위치한 테란 신호소로 이동 할 수는 있는데
한 가지 문제가 있습니다.
파란 사각형 안과 같은, 군수공장 사이의 빈 공간이 생겨 죽은 땅이 되어버립니다.
이 공간을 없애고 싶습니다.
단순히 저 공간을 선별하여 저 위치에 군수공장을 생성해 길을 막아봤는데
그렇게 하니 미로의 밀도가 너무 높아져서 미로가 너무 단순해지게 됩니다.
그래서 미로를 제거하는 방식을 이용하려고 아래 트리거를 만들었습니다.
구조는
1. 파란 사각형과 같이 군수공장이 없는 구역인데, 해당 구역에서 중앙의 프로토스 신호소로 도달 할 수 없는 구역을 찾는다.
2. 해당 구역에서 가장 가까운 군수공장 1개를 제거한다.
3. 방금 제거된 군수공장의 위치에서 중앙의 프로토스 신호소로 이동 경로가 성립하는지 검증
4. 이동경로가 성립하지 않으면, 방금 제거된 군수공장의 위치에서 가장 가까운 군수공장 1개를 제거한다.
while을 사용해서 확실하게 검증해보려 했으나
while을 이용할 경우 렉이 심하게 발생해서 게임이 팅겨버립니다.
(아마 제일 처음 행동 트리거와 while이 겹치면서 짧은 시간에 반복횟수가 많아져서 그런 모양)
위와 같이 if를 이용한 경우, 트리거를 여러번 반복해야 합니다. (이 여러번도 몇번을 해야 확실한지 알 수 없음)
하고 싶은것
단 1번만 트리거를 실행 시켜서, 파란 사각형과 같은 갇히는 지역이 생기지 않게 할 수 없을까요?
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.