|
|
(다른 사용자 한 명의 중간 판 6개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
− | =LXVM= | + | =Pini API= |
| + | 피니엔진은 루아스크립트를 사용하여 개발 범위를 확장할 수 있습니다. 루아는 5.1.4를 사용하고 있으며 루아의 기본 기능은 물론 루아소켓, 루아 암호화 모듈 등을 사용할 수도 있습니다. 루아로 게임을 확장할 때 루아의 기능들을 활용하는 것도 좋지만 피니API를 사용하여 게임을 개발하는 것도 가능합니다. |
| + | 루아[http://ko.wikipedia.org/wiki/%EB%A3%A8%EC%95%84_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)] 를 사용하기 때문에 본 위키에서는 루아 문법에 대해서 숙지하고 있다고 가정하겠습니다. |
| | | |
− | ==개요==
| + | 또한, 현재 피니엔진은 지속적으로 개발중인 엔진이기 때문에 지원하는 Pini API 의 종류 및 스펙 등이 추가되거나 삭제 또는 변경될 수 있는 점 양해 바라겠습니다. |
− | LXVM 클래스는 피니엔진 에디터 및 런타임에서 루아로 컴파일된 LNX 를 구동시키기 위한 일종의 가상 머신 클래스입니다.
| |
| | | |
− | 스크립트 불러오기 실행 호출 및, 리턴값 반환 등, 코드 구동에 핵심적인 기능만 포함되어 있습니다.
| |
| | | |
− | 보통 vm 이라는 인자로 전달되며, pini.XVM 으로도 접근할 수 있습니다.
| + | ==루아 확장 시작하기== |
| + | * [[PiniApi:tuto_make_simple_module|간단한 모듈 만들기]] |
| | | |
− | LXVM 에서는 여러개의 콜 스택을 허용하며, 각각의 콜 스택을 "루프" 라고 부릅니다. | + | ==피니API 클래스== |
| + | ===VM=== |
| + | * [[PiniApi:LXVM|LXVM]] |
| | | |
− | 따라서, LXVM 에서는 루프를 생성하거나 일시정지하고, 삭제하는 기능 등을 제공합니다.
| + | ===PiniAPI 클래스=== |
| + | * [[PiniApi:Shader|Shader]] |
| + | * [[PiniApi:Node|Node]] |
| + | * [[PiniApi:ClippingNode|ClippingNode]] |
| + | * [[PiniApi:Sprite|Sprite]] |
| + | * [[PiniApi:Slider|Slider]] |
| + | * [[PiniApi:Scene|Scene]] |
| + | * [[PiniApi:ColorLayer|ColorLayer]] |
| + | * [[PiniApi:Label|Label]] |
| + | * [[PiniApi:VideoPlayer|VideoPlayer]] |
| + | * [[PiniApi:TextInput|TextInput]] |
| + | * [[PiniApi:Timer|Timer]] |
| + | * [[PiniApi:TouchManager|TouchManager]] |
| + | * [[PiniApi:Backlog|Backlog]] |
| + | * [[PiniApi:Dialog|Dialog]] |
| + | * [[PiniApi:pini|pini]] |
| | | |
− | 또한, 저장과 불러오기 기능을 위한 덤프 및 복구 기능도 제공하고, 그것을 위한 구조로 구성되어 있습니다.
| + | ==파일구조== |
| | | |
− | ==전역 상수== | + | == 예제 == |
− | {| class="wikitable"
| + | * [[PiniApi:MathExample|수학 라이브러리]] |
− | | style="width:100px; background-color:#f0f0f0"|이름
| + | * [[PiniApi:SolarSystemExample|태양계 예제]] |
− | | style="background-color:#f0f0f0"|설명
| + | * [[PiniApi:EscapeShitExample|똥피하기 예제]] |
− | |-
| + | * [[PiniApi:BacklogOverride|백로그 상속 예제]] |
− | |OnPreview||에디터인지 리모트인지를 알려주는 상수입니다. true 이면 에디터이고, false이면 리모트입니다.
| |
− | |}
| |
− | | |
− | | |
− | ==전역 함수==
| |
− | {| class="wikitable"
| |
− | | style="width:100px; background-color:#f0f0f0"|이름
| |
− | | style="background-color:#f0f0f0"|설명
| |
− | |-
| |
− | |_VM_LOOP_(fname,fns,stckInfo,new_arg,del_arg,start_i,rets,scall)||LNX 매크로를 실제로 돌려주는 함수입니다.
| |
− | |}
| |
− | | |
− | | |
− | ==전역 변수==
| |
− | {| class="wikitable"
| |
− | | style="width:100px; background-color:#f0f0f0"|이름
| |
− | | style="background-color:#f0f0f0"|설명
| |
− | |-
| |
− | |_LNXF||LNX 스크립트 및 매크로가 들어있는 테이블입니다.
| |
− | |-
| |
− | |_LNXB||북마크 위치가 들어있는 테이블입니다.
| |
− | |-
| |
− | |_LNXVT||변수 트리거 정보가 들어있는 테이블입니다.
| |
− | |-
| |
− | |_LNXG||변수 정보를 읽고 쓸 수 있게 되어있는 테이블입니다. 일반적인 읽기 쓰기는 이것으로 접근합니다.
| |
− | |-
| |
− | |_LNXGP||변수 정보가 실제로 들어가있는 테이블입니다. 특수한 읽기 쓰기일 경우에만 이것으로 접근합니다.
| |
− | |}
| |
− | | |
− | | |
− | ==멤버 변수==
| |
− | {| class="wikitable"
| |
− | | style="width:100px; background-color:#f0f0f0"|이름
| |
− | | style="background-color:#f0f0f0"|설명
| |
− | |-
| |
− | |loops||현재 존재하는 모든 루프를 저장하는 테이블의 배열
| |
− | |-
| |
− | |currentLoop||현재 실행중인 loops 의 테이블을 가르킴
| |
− | |} | |
− | | |
− | | |
− | ==멤버 함수==
| |
− | {| class="wikitable"
| |
− | | style="width:100px; background-color:#f0f0f0"|이름
| |
− | | style="background-color:#f0f0f0"|설명
| |
− | |-
| |
− | |init()||vm 을 초기화하는 함수입니다. 단, 현재 vm 으로 실행중인 코드는 중지하지 않습니다.
| |
− | |-
| |
− | |_return()||현재 실행중인 매크로를 종료합니다.
| |
− | |-
| |
− | |returnValue(ret)||현재 실행중인 매크로가 ret 를 반환하게 합니다.
| |
− | |-
| |
− | |returnValueOnThread(ret,idx)||지정한 idx 루프번호에서 진행중인 매크로가 ret 를 반환하게 합니다. 결과를 반환해야 하지만 즉시 반환하지는 않고, pause 등을 사용해서 결과가 지연될 경우에 사용합니다.
| |
− | |-
| |
− | |ARGU(fname, arg, default)||fname 매크로의 arg 인자를 가져옵니다. 존재하지 않는다면, 기본 값을 가져옵니다. 둘 다 존재하지 않는다면, default 를 반환합니다.
| |
− | |-
| |
− | |currentLoopIdx()||현재 돌고있는 루프의 번호를 가져옵니다.
| |
− | |-
| |
− | |removeLoop(infotable)||infotable에 해당되는 루프를 loops 에서 제거합니다.
| |
− | |-
| |
− | |stop()||현재 루프를 일시정지합니다. 그리고, 루프번호를 반환합니다.
| |
− | |-
| |
− | |resume(idx)||stop 에서 반환받은 번호를 idx 로 전달해 주면, 일시정지를 해제합니다.
| |
− | |-
| |
− | |sleep(time)||지정한 time초 만큼 루프를 일시정지합니다.
| |
− | |-
| |
− | |GotoBookmark(bmk)||지정한 북마크로 이동합니다.
| |
− | |-
| |
− | |GotoBookmarkNewCall(bmk)||지정한 북마크 위치부터 시작하는 새로운 매크로를 호출합니다.
| |
− | |-
| |
− | |resumeAndGoBookmark(idx,bmk)||지정한 idx 루프번호로 현재 루프를 전환한 뒤, 지정한 묵마크로 이동합니다.
| |
− | |-
| |
− | |OpenLNX(file)||지정한 file 을 로드합니다. file 은 .lua 또는 .lnx 파일입니다. 대소문자에 맞게 확장자까지 모두 적어주어야 하며, .lnx 의 경우 실행하지는 않지만, .lua 인 경우, 코드 자체는 한번 실행 합니다.
| |
− | |-
| |
− | |call(stckName, start_i, fcall)||지정한 매크로를 실행하는 새로운 루프를 생성하고 실행합니다.
| |
− | |-
| |
− | |registVariableTrigger(id,varName,func)||변수트리거를 등록합니다. id,varName,func 는 차례대로 아이디, 변수이름, 실행할 함수입니다.
| |
− | |-
| |
− | |unregistVariableTrigger(id)||변수트리거를 등록 해제합니다.
| |
− | |-
| |
− | |getState()||세이브를 위한 상태 덤프용 함수입니다.
| |
− | |-
| |
− | |setState(state, targetStck)||덤프한 데이터를 기반으로 상태를 복구합니다.
| |
− | |} | |