250x250

Xtra의 그 무엇

블로그 이미지
욕심많아 진도 느린 Xtra입니다.
by Xtra
  • Total hit
  • Today hit
  • Yesterday hit

728x90
728x90

선 요약

후 사설

 

 

 

 

요약

   버튼을 입력하지 않아도 action의 실행 내용이 일부 실행된다.

   실행이 정상적으로 순번을 지키는 경우는 Hide Jump Show등 기본적인것

   실행이 입력 전에서 작동하는 경우는 변수 값 변경, 호출 등의 거의 모든 것

   아 빡친다.

 

 

 

 

 

 

사설

 6개월 만에 이 문제를 풀었다.

 중간에 너무 스트레스 받에서 게임으로 1달 보내고 애니 감상으로 1개월 보내고 그림이나 다른 작업을 하면서 또 시간을 보내면서 6개월 간 틈틈히 이 문제를 해결하기 위해서 붙잡았다. 월급을 받는 직장인이었다 해도 7일 정도 야근해서 해결하지 않았을까 하는 어의 없는 문제였다.

 

 문제 : 상점을 만들어서 상점에서 아이템을 구매하는 시스템을 Textbutton으로 구현 했는데 아이템의 구매가 1회에 2~4회 작동해서 정상적으로 구매되지 않습니다.

 

 원인 : Textbutton에서 action을 사용하면 screen, label관련 기능 외의 거의 모든 기능이 버튼을 입력하기 전에 작동해버린다.

 

 해결 : 마땅한 해결법을 찾지 못함. 필요한 기능을 label로 따로 묶서 루프를 그럴듯하게 보이도록 수정하는것으로 대체함. 다른 버튼 기능을 이용하는 방법도 있지만 그것을 시험하는것 보다 베타로써 작동할 수 있도록 1년치 게임을 먼저 만드는것을 우선시하기로 결정함

 

 

 일단 아이템 테이블 기획으로 넘어갈 수 있게 되었다.

 

 

 

 

 

문제 해결 전 코드(예제)

    def append():
        if Place_name == "store_convenie":
            Inven_Possession.append(Store_Convenie[Select_item])
 
    screen CONNENIS_BUY:
        frame:
            vbox:
                xalign 0.5 yalign 0.5
                textbutton "구매"
                textbutton "한다." action [Hide("CONNENIS_BUY"), append():] <- 문제
                textbutton "않는다." action [Hide("CONNENIS_BUY")]

문제 : "한다"를 선택하지 않아도 append()가 작동해버린다.

textbutton "한다." action [Hide("CONNENIS_BUY"), append():]

다만 그렇다고 해서 무한하게 아이템이 구매되는것이 아니라 2~4회 한도라는것이 납득이 가지는 않는다. 이는 텍스트 버튼이 2~4회 작동한다고 볼 수 있는데 이를 1회로 작동하게 되면 해결 하느냐? 하면 그것도 아니다. "한다"라는 선택지가 출력되는 순간 아이템이 구매되는 기능이 작동하기 때문이다. 단 1회도 실행을 허용해서는 안된다.

 

 

 

문제 해결 후 코드

    def append():
        if Place_name == "store_convenie":
            Inven_Possession.append(Store_Convenie[Select_item])
 
    screen CONNENIS_BUY:
        frame:
            vbox:
                xalign 0.5 yalign 0.5
                textbutton "구매"
                textbutton "한다." action [Hide("CONNENIS_BUY"), Jump("Append_Call")] <- label로 빼서 해결
                textbutton "않는다." action [Hide("CONNENIS_BUY")]
 
   label Append_Call:
       $ append()
       jump VISIT_PLACE

label로 append 호출을 때어내서 작동하는 것을 일단 막았다. 이렇게 해두면 선택지를 마우스로 클릭하기 전까지는 작동하지 않는다. 그러니 자연스럽게 아이템이 2~4회 구매되는 문제도 해결했다. 다만 label의 경우 다음 코드가 없으면 해당 스크립트? 코드가 작성되어 있는 페이지?를 닫아 버리거나 그 다음에 있는 코드를 실행한다. 때문에 게임의 꼬이게 되는데 나의 경우 임의로 점프 지점을 만들어서 그럴슷 하게 흐름을 유지하는 것으로 문제를 대처하고 있다. 여기서는  jump VISIT_PLACE를 작성해서 그럴듯하게 흐름을 유지하고 있다. 나중에 제대로 처리할 생각이다. 

 

이걸로 다음으로 나아갈 수 있게 되었다.

 

 

 

 

 

728x90
728x90
AND

ARTICLE CATEGORY

전체 카테고리 (941)
게임 개발 (10)
기획 파트 (23)
그래픽파트 (73)
思-네트워크 (112)
프로그래밍 (74)
2020 ~ 24 잡탕 (393)
2010 ~ 19 잡탕 (197)
만화 연재 (14)
소설 연재 (12)
기타 연재 (0)
네오스 VR (18)
그란 카 리버리 (15)

RECENT ARTICLE

RECENT COMMENT

RECENT TRACKBACK

CALENDAR

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

ARCHIVE