선 요약
후 사설
요약
버튼을 입력하지 않아도 action의 실행 내용이 일부 실행된다.
실행이 정상적으로 순번을 지키는 경우는 Hide Jump Show등 기본적인것
실행이 입력 전에서 작동하는 경우는 변수 값 변경, 호출 등의 거의 모든 것
아 빡친다.
사설
6개월 만에 이 문제를 풀었다.
중간에 너무 스트레스 받에서 게임으로 1달 보내고 애니 감상으로 1개월 보내고 그림이나 다른 작업을 하면서 또 시간을 보내면서 6개월 간 틈틈히 이 문제를 해결하기 위해서 붙잡았다. 월급을 받는 직장인이었다 해도 7일 정도 야근해서 해결하지 않았을까 하는 어의 없는 문제였다.
문제 : 상점을 만들어서 상점에서 아이템을 구매하는 시스템을 Textbutton으로 구현 했는데 아이템의 구매가 1회에 2~4회 작동해서 정상적으로 구매되지 않습니다.
원인 : Textbutton에서 action을 사용하면 screen, label관련 기능 외의 거의 모든 기능이 버튼을 입력하기 전에 작동해버린다.
해결 : 마땅한 해결법을 찾지 못함. 필요한 기능을 label로 따로 묶서 루프를 그럴듯하게 보이도록 수정하는것으로 대체함. 다른 버튼 기능을 이용하는 방법도 있지만 그것을 시험하는것 보다 베타로써 작동할 수 있도록 1년치 게임을 먼저 만드는것을 우선시하기로 결정함
일단 아이템 테이블 기획으로 넘어갈 수 있게 되었다.
문제 해결 전 코드(예제)
문제 : "한다"를 선택하지 않아도 append()가 작동해버린다.
textbutton "한다." action [Hide("CONNENIS_BUY"), append():]
다만 그렇다고 해서 무한하게 아이템이 구매되는것이 아니라 2~4회 한도라는것이 납득이 가지는 않는다. 이는 텍스트 버튼이 2~4회 작동한다고 볼 수 있는데 이를 1회로 작동하게 되면 해결 하느냐? 하면 그것도 아니다. "한다"라는 선택지가 출력되는 순간 아이템이 구매되는 기능이 작동하기 때문이다. 단 1회도 실행을 허용해서는 안된다.
문제 해결 후 코드
label로 append 호출을 때어내서 작동하는 것을 일단 막았다. 이렇게 해두면 선택지를 마우스로 클릭하기 전까지는 작동하지 않는다. 그러니 자연스럽게 아이템이 2~4회 구매되는 문제도 해결했다. 다만 label의 경우 다음 코드가 없으면 해당 스크립트? 코드가 작성되어 있는 페이지?를 닫아 버리거나 그 다음에 있는 코드를 실행한다. 때문에 게임의 꼬이게 되는데 나의 경우 임의로 점프 지점을 만들어서 그럴슷 하게 흐름을 유지하는 것으로 문제를 대처하고 있다. 여기서는 jump VISIT_PLACE를 작성해서 그럴듯하게 흐름을 유지하고 있다. 나중에 제대로 처리할 생각이다.
이걸로 다음으로 나아갈 수 있게 되었다.