동방탄막풍/ph3 함수: 두 판 사이의 차이

875번째 줄: 875번째 줄:
*: 지정한 3D 좌표를 2D 좌표로 변환한 수치를 반환한다. a,b,c는 3D 좌표의 x,y,z 좌표 값이다. 결과값은 [x,y] 형태의 배열로 출력된다.
*: 지정한 3D 좌표를 2D 좌표로 변환한 수치를 반환한다. a,b,c는 3D 좌표의 x,y,z 좌표 값이다. 결과값은 [x,y] 형태의 배열로 출력된다.


=== 공동 오브젝트 조작 (Obj_) ===
=== 공통 오브젝트 조작 (Obj_) ===
* Obj_Delete(a)
*: 지정한 오브젝트를 삭제한다. a는 오브젝트의 ID이다.
 
* Obj_IsDeleted(a)
*: 지정한 오브젝트가 삭제되었는지를 조사한다. 삭제되었다면 true를, 그렇지 않으면 false를 반환한다. a는 오브젝트의 ID이다.
 
* Obj_SetVisible(a,T/F)
*: 오브젝트를 표시할지 설정한다. a는 오브젝트의 ID이다. false로 설정하면 오브젝트가 표시되지 않는다.
 
* Obj_SetRenderPriority(a,b)
*: 오브젝트의 묘화 우선도를 설정한다. a는 오브젝트의 ID, b는 묘화 우선도이다. b에는 0.0~1.0 사이의 값을 설정할 수 있다.
 
* Obj_SetRenderPriorityI(a,b)
*: 오브젝트의 묘화 우선도를 설정한다. a는 오브젝트의 ID, b는 묘화 우선도이다. b에는 0~100 사이의 값을 설정할 수 있다.
 
* Obj_GetValue(a,B)
*: 오브젝트에 할당되어 있는 키에 대응하는 값을 가져온다. a는 오브젝트의 ID, B는 키 문자열이다.
 
* Obj_GetValueD(a,B,X)
*: 오브젝트에 할당되어 있는 키에 대응하는 값을 가져온다. a는 오브젝트의 ID, B는 키 문자열이다. 키 문자열에 대응하는 값이 없을 경우 X의 값을 가져온다.
 
* Obj_SetValue(a,B,X)
*: 키에 대응하는 임의의 값을 오브젝트에 할당한다. a는 오브젝트의 ID, B는 키 문자열, X는 임의의 값이다.
 
* Obj_DeleteValue(a,B,X)
*: 오브젝트에 할당되어 있는, 키에 대응하는 값을 삭제한다. a는 오브젝트의 ID, B는 키 문자열, X는 임의의 값이다.
 
* Obj_IsValueExists(a,B)
*: 오브젝트에 할당되어 있는, 키에 대응하는 값이 존재하는지를 조사한다. 존재하면 true를, 그렇지 않으면 false를 반환한다. a는 오브젝트의 ID, B는 키 문자열이다.
 
* Obj_GetType(a)
*: 오브젝트의 종류를 반환한다. a는 오브젝트의 ID이다. 결과값은 아래와 같다.
*:: OBJ_PRIMITIVE_2D: 2D 공간 자유 변형 오브젝트
*:: OBJ_SPRITE_2D: 2D 공간 구형 오브젝트 (ObjSprite2D_를 사용 가능한 오브젝트)
*:: OBJ_SPRITE_LIST_2D: 2D 공간 구형 리스트 오브젝트 (ObjSpriteList2D_를 사용 가능한 오브젝트)
*:: OBJ_PRIMITIVE_3D: 3D 공간 자유 변형 오브젝트
*:: OBJ_SPRITE_3D: 3D 공간 구형 오브젝트 (ObjSprite3D_를 사용 가능한 오브젝트)
*:: OBJ_MESH: 3D 메시 오브젝트 (ObjMesh_를 사용 가능한 오브젝트)
*:: OBJ_TEXT: 텍스트 오브젝트 (ObjText_를 사용 가능한 오브젝트)
*:: OBJ_SOUND: 음성 오브젝트 (ObjSound_를 사용 가능한 오브젝트)
*:: OBJ_FILE_TEXT: 텍스트 파일 오브젝트 (ObjFileT_를 사용 가능한 오브젝트)
*:: OBJ_FILE_BINARY: 바이너리 파일 오브젝트 (ObjFileB_를 사용 가능한 오브젝트)
*:: OBJ_PLAYER: 플레이어 기체 오브젝트 (ObjPlayer_를 사용 가능한 오브젝트)
*:: OBJ_SPELL: 플레이어 기체 스펠 오브젝트 (ObjSpell_를 사용 가능한 오브젝트)
*:: OBJ_ENEMY: 적 오브젝트(ObjEnemy_를 사용 가능한 오브젝트)
*:: OBJ_ENEMY_BOSS_SCENE: 적 보스 신 오브젝트 (ObjEnemyBossScene_를 사용 가능한 오브젝트)
*:: OBJ_SHOT: 통상 탄 오브젝트 (ObjShot_를 사용 가능한 오브젝트)
*:: OBJ_LOOSE_LASER: 사출형 레이저 오브젝트 (ObjLaser_를 사용 가능한 오브젝트)
*:: OBJ_STRAIGHT_LASER: 설치형 레이저 오브젝트 (ObjStLaser_를 사용 가능한 오브젝트)
*:: OBJ_CURVE_LASER: 굽은 레이저 오브젝트 (ObjLaser_를 사용 가능한 오브젝트)
*:: OBJ_ITEM: 아이템 오브젝트 (ObjItem_를 사용 가능한 오브젝트)
 
=== 그림 묘사 오브젝트 조작 (ObjRender_) ===
=== 그림 묘사 오브젝트 조작 (ObjRender_) ===
=== 정점 오브젝트 조작 (ObjPrim_) ===
=== 정점 오브젝트 조작 (ObjPrim_) ===

2018년 1월 6일 (토) 03:22 판

동방탄막풍의 ph3 버전에서 사용되는 스크립트 함수들에 대한 설명이다. 최종 버전인 .0 기준이다. 문서 작성에는 공식 홈페이지의 help 글을 참고하였다.

편의상 real 변수는 소문자 알파벳, char 변수는 대문자 알파벳, bool 변수는 T/F로 표시하였다.

공통 함수

수학

  • min(a,b)
    a와 b 중 작은 수를 취득한다.
  • max(a,b)
    a와 b 중 큰 수를 취득한다.
  • cos(a)
    a의 코사인 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • sin(a)
    a의 사인 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • tan(a)
    a의 탄젠트 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • acos(a)
    a의 역코사인(arccos) 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • asin(a)
    a의 역사인(arcsin) 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • atan(a)
    a의 역탄젠트(arctan) 값을 취득한다. 삼각함수는 60분법을 사용한다.
  • atan2(a,b)
    좌표평면에서 원점과 (a,b)를 잇는 선분과 x축 사이의 각도를 취득한다. 예를 들어 총알의 각도를 atan2(1,0)으로 하면 총알이 정면으로 날아오고, atan2(1,1)로 하면 정면 기준 반시계 방향으로 45도만큼 기울어진 방향으로 날아온다.
  • rand(a,b)
    a 이상 b 이하의 난수를 취득한다.
  • round(a)
    a를 반올림한 정수를 취득한다.
  • truncate(a)
    a의 소숫점 아래 값을 지워 정수로 만든 값을 취득한다. trunc(a)와 같다. 예를 들어 truncate(2.5)의 값은 2, truncate(-2.5)의 값은 -2이다.
  • ceil(a)
    a를 올림한 정수를 취득한다. 예를 들어 ceil(2.5)의 값은 3, ceil(-2.5)의 값은 -2이다.
  • floor(a)
    a를 내림한 정수를 취득한다. 예를 들어 floor(2.5)의 값은 2, floor(-2.5)의 값은 -3이다.
  • absolute(a)
    a의 절댓값을 취득한다. 예를 들어 absolute(-2.5)의 값은 2.5이다.
  • modc(a,b)
    a를 b로 나눈 나머지를 취득한다. a%b와 같다.

문자열 조작

  • InstallFont(A)
    폰트를 추가한다. A는 폰트 파일의 경로이다. 이 함수로 추가하는 폰트는 ObjText_SetFontType에 지정 가능해진다. Windows에 표준으로 들어있는 폰트는 추가하지 않고도 사용 가능하다. 함수에 성공하면 결과값으로 true를 갖는다.
  • ToString(a)
    수치들을 문자열로 변환한다. a는 입력하는 수치이다.
  • IntToString(a)
    수치들을 정수 문자열로 변환한다. a는 입력하는 수치이다.
  • itoa(a)
    정수를 정수 문자열로 변환한다. a는 입력하는 수치이다.
  • rtoa(a)
    실수를 정수 문자열로 변환한다. a는 입력하는 수치이다.
  • rtos(A,b)
    실수를 포맷에 따른 문자열로 변환한다. A는 실수 문자열을 나타내고자 하는 포맷이고, b는 문자열로 변환하고자 하는 수치이다. 포맷에서 0은 숫자, #은 0이 생략되는 숫자, .은 소수점을 나타낸다. 예를 들어서 rtos("#00.000", 1.23)를 입력하면 "01.230"이라는 문자열이 출력되는데, 백의 자리는 #이므로 표시되지 않고 십의 자리는 0이므로 0을 표시, 일의 자리는 숫자를 표시, 소수점 셋째 자리까지 숫자를 표시하게 되는 것이다.
  • vtos(A,b)
    실수를 포맷에 따른 문자열로 변환한다. b에 변환하고자 하는 수치가 들어가는 것은 같으나 A의 포맷이 다르다. 포맷에서 d는 정수, f는 실수, s는 문자열, 수치는 문자열 필드의 폭, -는 오른쪽 공백, 0은 숫자로 채우되 숫자가 없는 공백 부분까지 숫자 0으로 채우라는 뜻이다. 예를 들면 아래와 같다.
    • vtos("03d", 1.23) = "001"
    0은 숫자가 없는 공백 부분까지 숫자로 채우라는 뜻이고, 3은 필드의 폭이 3, 즉 숫자를 3개 표시하라는 뜻이다. d는 정수로 출력하라는 뜻이므로 소수점 이하는 무시된다. 따라서 1.23에서 .23이 버려지고 1 앞에 0이 2개 붙어 001이라는 3개의 글씨를 가진 문자열로 출력된다.
    • vtos("3d", 1.23) = " 1"
    위의 예제와 마찬가지로 소수점 이하는 무시되고, 1 앞에 0 대신 공백이 2개 들어가 총 3개의 글씨를 가진 문자열로 출력된다.
    • vtos("-3d", 1.23) = "1 "
    위의 예제와는 달리 -가 들어가있으므로 공백이 오른쪽에 붙는다.
    • vtos("03.5f", 1.23) = "001.23000"
    실수로 출력하고, 정수 부분의 필드 폭을 3개, 소수점 이하 부분의 필드 폭을 5개로 하라는 뜻이다. 0이 있으므로 숫자가 없는 부분은 0으로 채워진다.
  • atoi(A)
    문자열을 정수로 변환한다. A는 입력하는 문자열이다.
  • ator(A)
    문자열을 실수로 변환한다. A는 입력하는 문자열이다.
  • TrimString(A)
    문자열 왼쪽과 오른쪽에 위치한 공백을 제거한 문자열로 변환한다. 예를 들어 TrimString(" ABC ") = "ABC"이다.
  • SplitString(A,B)
    A로 입력한 문자열을 B에서 지정한 글자를 기준으로 분할하여 여러 문자열로 구성된 배열로 변환한다. 예를 들어 SplitString("A/123/BCD","/") = ["A", "123", "BCD"]인데, 입력된 문자열을 /라는 글자를 기준으로 세 개의 문자열로 구성된 배열로 변환한 것을 볼 수 있다.

패스 관련

  • GetFileDirectory(A)
    지정한 파일 경로의 폴더를 문자열로 취득한다.
  • GetDirectoryList(A)
    지정한 파일 경로(또는 폴더 경로)의 폴더에 있는 폴더 일람을 string배열로 출력한다.
  • GetModuleDirectory()
    실행파일의 디렉토리를 문자열로 취득한다.
  • GetMainStgScriptPath()
    메인에서 실행되고 있는 스크립트의 경로를 문자열로 취득한다. 스크립트 선택화면에서 선택한 스크립트의 경로가 취득된다.
  • GetMainPackageScriptPath()
    메인에서 실행되고 있는 패키지 스크립트의 경로를 문자열로 취득한다.
  • GetMainStgScriptDirectory()
    메인에서 실행되고 있는 스크립트의 디렉토리를 문자열로 취득한다. 스크립트 선택화면에서 선택된 스크립트의 디렉토리가 취득된다.
  • GetCurrentScriptDirectory()
    자신의 스크립트의 디렉토리를 문자열로 취득한다.
  • GetScriptPathList(A,b)
    A에서 지정한 폴더 내에서, b로 지정한 종류에 맞는 스크립트 경로 일람이 string배열로 취득된다. b에 들어가는 단어는 아래와 같다.
    TYPE_SCRIPT_ALL: 모든 스크립트
    TYPE_SCRIPT_PLAYER: 플레이어 기체 스크립트
    TYPE_SCRIPT_SINGLE: Single 스크립트
    TYPE_SCRIPT_PLURAL: Plural 스크립트
    TYPE_SCRIPT_STAGE: Stage 스크립트
    TYPE_SCRIPT_PACKAGE: Package 스크립트

시간 관련

  • GetCurrentDataTimeS()
    현재의 일시를 문자열로 취득한다. 예를 들어 지금이 2018년 1월 23일 12시 34분 56초라면 "20180123123456"이 취득된다. 예를 들어 이 문자열에서 연도만 취득하고 싶다면 맨 앞의 4자리를 가져오면 되니 아래와 같이 문자열의 맨 앞 4자리를 숫자로 변환하여 가져오면 된다.
    let strDateTime = GetCurrentDateTimeS();
    let year = atoi(strDateTime[0..4]);
  • GetStageTime()
    스테이지 개시 시각부터 현재까지 경과된 시간을 취득한다. 단위는 밀리초이다.
  • GetPackageTime()
    패키지 개시 시각부터 현재까지 경과된 시간을 취득한다. 단위는 밀리초이다.
  • GetCurrentFps()
    현재의 FPS 수치를 취득한다.
  • GetReplayFps()
    리플레이에 보존되어 있는 현재의 FPS 수치를 취득한다. 리플레이 중이 아닐 경우 0이 취득된다. 리플레이 중인지는 IsReplay 함수로 판별할 수 있다.

디버그 관련

  • WriteLog(A)
    로그의 문자열을 출력한다.
  • RaiseError(A)
    A에서 지정한 문자열로 에러를 발생시킨다. 스크립트의 실행이 중단된다.

공동 데이터

  • SetCommonData(A,X)
    디폴트 공통 데이터 메모리 공간에 공통 데이터를 보존하는 함수이다. A는 공통 데이터의 이름, X는 보존하고자 하는 수치이다.
  • GetCommonData(A,X)
    디폴트 공통 데이터 메모리 공간에서 공통 데이터를 읽어오는 함수이다. A는 공통 데이터의 이름, X는 공통 데이터에 수치가 없을 경우 대신 불러오는 수치이다.
  • ClearCommonData()
    디폴트 공통 데이터 메모리 공간의 모든 공통 데이터를 삭제하는 함수이다.
  • DeleteCommonData(A)
    디폴트 공통 데이터 메모리 공간에서 지정된 공통 데이터의 수치를 삭제하는 함수이다. A는 공통 데이터의 이름이다.
  • SetAreaCommonData(A,B,X)
    지정된 공통 데이터 메모리 공간에 공통 데이터를 보존하는 함수이다. A는 공통 데이터 메모리 공간의 이름, B는 공통 데이터의 이름, X는 보존하고자 하는 수치이다.
  • GetAreaCommonData(A,B,X)
    지정된 공통 데이터 메모리 공간에서 공통 데이터를 읽어오는 함수이다. A는 공통 데이터 메모리 공간의 이름, B는 공통 데이터의 이름, X는 공통 데이터에 수치가 없을 경우 대신 불러오는 수치이다.
  • ClearAreaCommonData(A)
    지정된 공통 데이터 메모리 공간의 모든 공통 데이터를 삭제하는 함수이다. A는 공통 데이터 메모리 공간의 이름이다.
  • DeleteAreaCommonData(A,B)
    지정된 공통 데이터 메모리 공간에서 지정된 공통 데이터의 수치를 삭제하는 함수이다. A는 공통 데이터 메모리 공간의 이름, B는 공통 데이터의 이름이다.
  • CreateCommonDataArea(A)
    공통 데이터 메모리 공간을 새롭게 만드는 함수이다. A는 공통 데이터 메모리 공간의 이름이다.
  • IsCommonDataAreaExists(A)
    공통 데이터 메모리 공간이 만들어져 있는지를 T/F로 판별하는 함수이다. A의 이름과 같은 공통 데이터 메모리 공간이 만들어져 있을 경우 true가, 그렇지 않을 경우 false가 취득된다.
  • CopyCommonDataArea(A,B)
    공통 데이터 메모리 공간의 내용을 복사하는 함수이다. B의 공통 데이터 메모리 공간의 내용이 A의 공통 데이터 메모리 공간으로 복사된다.
  • GetCommonDataAreaKeyList()
    공통 데이터 메모리 공간의 일람을 char배열로 취득하는 함수이다.
  • GetCommonDataValueKeyList(A)
    공통 데이터 메모리 공간 내의 공통 데이터 일람을 char배열로 취득하는 함수이다.
  • SaveCommonDataAreaA1(A)
    공통 데이터를 파일에 보존한다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다.
  • LoadCommonDataAreaA1(A)
    공통 데이터를 파일에서 읽어온다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다.
  • SaveCommonDataAreaA2(A,B)
    공통 데이터를 B에서 지정한 경로의 파일에 보존한다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다.
  • LoadCommonDataAreaA2(A,B)
    공통 데이터를 B에서 지정한 경로의 파일에서 읽어온다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다.
  • SaveCommonDataAreaToReplayFile(A)
    공통 데이터를 리플레이 파일에 보존한다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다. 리플레이 중에 실행될 경우 에러가 뜬다. 함수를 실행하는 시점의 공통 데이터를 리플레이 파일의 스테이지 매 영역에 보존한다.
  • LoadCommonDAtaAreaFromReplayFile(A)
    공통 데이터를 리플레이 파일에서 읽어온다. A는 공통 데이터 메모리 공간의 이름이다. 성공할 경우 true가, 그렇지 않을 경우 false가 반환된다. 리플레이 중이 아닌데 실행될 경우 에러가 뜬다. 공통 데이터를 리플레이 파일의 스테이지 매 영역에서 읽어들인다.

음악 조작 관련

  • LoadSound(A)
    지정한 음악 파일을 로드한다. A는 음악 파일의 경로이다.
  • RemoveSound(A)
    지정한 경로의 음악 파일을 데이터에서 삭제한다. A는 음악 파일의 경로이다.
  • PlayBGM(A,b,c)
    지정한 음악 파일을 BGM으로 루프 재생한다. A는 음악 파일의 경로, b는 BGM 루프를 개시하는 시각(초 단위), c는 BGM 루프가 끝나는 시각(초 단위)이다.
  • PlaySE(A)
    지정한 음악 파일을 효과음으로 재생한다. 효과음이므로 BGM과는 달리 한 번만 재생된다.
  • StopSound(A)
    지정한 음악을 정지한다. A는 음악 파일의 경로이다.

키 입력

  • GetVirtualKeyState(a)
    현재 가상 키의 상태를 취득한다. a는 가상 키의 이름이며, 결과값은 해당 가상 키의 상태이다. 가상 키의 이름은 아래와 같다.
    VK_LEFT: 왼쪽 이동 키
    VK_RIGHT: 오른쪽 이동 키
    VK_UP: 위쪽 이동 키
    VK_DOWN: 아래쪽 이동 키
    VK_SHOT: 샷 키(총알을 쏘는 키)
    VK_SPELL: 스펠 키(폭탄 키)
    VK_SLOWMOVE: 저속 이동 키
    VK_USER1: 유저 정의 키 1
    VK_USER2: 유저 정의 키 2
    VK_OK: 결정 키
    VK_CANCEL: 취소 키
    VK_PAUSE: 일시정지 키(리플레이 보존 대상 외)
    결과값은 아래와 같다.
    KEY_FREE: 키가 눌러져 있지 않은 상태
    KEY_PUSH: 키가 눌러지는 순간
    KEY_HOLD: 키가 계속 눌러져 있는 상태
    KEY_PULL: 눌러졌던 키에서 손을 떼는 순간
  • SetVirtualKeyState(a,b)
    지정한 가상 키를 임의의 상태로 놓이도록 설정한다. A는 가상 키의 이름이고, B는 가상 키의 상태로, 쓰이는 이름은 GetVirtualKeyState와 같다.
  • AddVirtualKey(a,b,c)
    가상 키를 추가 등록한다. a는 가상 키의 이름으로, 스테이지 스크립트에서는 VK_USER_ID_STAGE 부터 VK_USER_ID_STAGE+255의 범위 내의 수치, 플레이어 기체 스크립트에서는 VK_USER_ID_PLAYER 부터 VK_USER_ID_PLAYER+255의 범위 내의 수치가 등록 가능하다. b는 키보드의 실제 키이다. c는 패드 버튼 번호로, 필요 없을 경우에는 KEY_INVALID를 지정한다.
  • AddReplayTargetVirtualKey(a)
    리플레이 대상의 가상 키를 추가한다. AddVirtualKey에서 추가한 가상 키가 필요하다. a는 리플레이 대상의 가상 키 ID이다.
  • GetKeyState(a)
    현재 키의 상태를 취득한다. a는 키의 이름이며, 결과값은 해당 키의 상태이다. 키의 이름은 다음과 같다.
    KEY_0, KEY_1, ... , KEY_9: 순서대로 0,1, ... , 9 숫자 키
    KEY_A, KEY_B, ... , KEY_Z: 순서대로 A,B, ... , Z 키
    KEY_F1, KEY_F2, ... , KEY_F10: 순서대로 F1, F2, ... , F10 기능키
    KEY_ESCAFE: Esc
    KEY_MINUS: -
    KEY_EQUALS: =
    KEY_SLASH: /
    KEY_BACK: 백 스페이스(Back Space)
    KEY_TAB: Tab
    KEY_SPACE:스페이스(Space)
    KEY_LBRACKET: [
    KEY_RBRACKET: ]
    KEY_SEMICOLON: ;
    KEY_APOSTROPHE: '
    KEY_GRAVE: `
    KEY_BACKSLASH: \ (KEY_YEN 과 같다.)
    KEY_AT: @
    KEY_COLON: :
    KEY_UNDERLINE: _
    KEY_CIRCUMFLEX: ^
    KEY_COMMA: ,
    KEY_PERIOD: .
    KEY_INSERT: Insert
    KEY_DELETE: Delete
    KEY_RETURN: Enter
    KEY_LCONTROL: 왼쪽 Ctrl
    KEY_RCONTROL: 오른쪽 Ctrl
    KEY_LSHIFT: 왼쪽 Shift
    KEY_RSHIFT: 오른쪽 Shift
    KEY_LEFT:←
    KEY_RIGHT:→
    KEY_UP:↑
    KEY_DOWN:↓
    KEY_NUMPAD0, KEY_NUMPAD1, ... , KEY_NUMPAD9: 넘버패드의 0,1, ... , 9 숫자 키
    KEY_ADD: 넘버패드의 + 키
    KEY_SUBTRACT: - 넘버패드의 - 키
    KEY_MULTIPLY: 넘버패드의 * 키
    KEY_DIVIDE: 넘버패드의 / 키
    KEY_DECIMAL: 넘버패드의 . 키
    KEY_NUMPADEQUALS: 넘버패드의 = 키
    결과값은 아래와 같다.
    KEY_FREE: 키가 눌러져 있지 않은 상태
    KEY_PUSH: 키가 눌러지는 순간
    KEY_HOLD: 키가 계속 눌러져 있는 상태
    KEY_PULL: 눌러졌던 키에서 손을 떼는 순간
  • GetMouseState(a)
    마우스의 상태를 취득한다. a는 마우스의 버튼이며, 결과값은 마우스의 상태이다.
    마우스의 버튼은 아래와 같다.
    MOUSE_LEFT: 왼쪽 마우스 버튼
    MOUSE_RIGHT: 오른쪽 마우스 버튼
    MOUSE_MIDDLE: 중간 마우스 버튼(휠)
    결과값은 아래와 같다.
    KEY_FREE: 마우스가 눌러져 있지 않은 상태
    KEY_PUSH: 마우스가 눌러지는 순간
    KEY_HOLD: 마우스가 계속 눌러져 있는 상태
    KEY_PULL: 눌러졌던 마우스에서 손을 떼는 순간
  • GetMouseX()
    마우스의 X좌표를 취득한다. 창의 왼쪽 위가 (0,0)이다. 창이 확대/축소되어도 적절한 위치를 반환한다.
  • GetMouseY()
    마우스의 Y좌표를 취득한다. 창의 왼쪽 위가 (0,0)이다. 창이 확대/축소되어도 적절한 위치를 반환한다.
  • GetMouseMoveZ()
    마우스의 휠이 움직인 양을 취득한다.
  • SetSkipModeKey(a)
    누르면 고속재생 모드가 되는 키를 지정한다. a는 해당 용도로 쓸 키로, 필요없을 경우에는 KEY_INVALID를 입력한다. 초기값은 KEY_LCONTROL (왼쪽 Ctrl) 키이다.

그림 묘사

  • LoadTexture(A)
    그림 파일을 읽어와 텍스처를 제작한다. A는 그림 파일의 경로이다.
  • LoadTextureInLoadThread(A)
    별도의 스레드에서 그림 파일을 읽어와 텍스처를 제작한다. A는 그림 파일의 경로이다.
  • RemoveTexture(A)
    그림 파일을 메모리에서 삭제한다. A는 그림 파일의 경로이다.
  • GetTextureWidth(A)
    텍스처의 폭을 취득한다. A는 그림 파일의 경로이다.
  • GetTextureHeight(A)
    텍스처의 높이를 취득한다. A는 그림 파일의 경로이다.
  • SetFogEnable(T/F)
    안개 효과를 나타나게 할지 그렇지 않을지를 설정한다.
  • SetFogParam (a,b,c,d,e)
    안개 효과를 발생시킨다. a는 안개 개시점(시점으로부터의 거리), b는 안개 종료점(시점으로부터의 거리), c,d,e는 안개 색의 RGB 값이다. 예를 들어 먼 곳을 어둡게 보이게 하려면 SetFog(250,700,0,0,0); 으로 설정해주면 된다.
  • ClearInvalidRenderPriority()
    묘화 무효 우선도를 클리어한다.
  • SetInvalidRenderPriorityA1(a,b)
    묘화 무효 우선도를 설정한다. a는 개시점의 묘화 무효 우선도, b는 종료점의 묘화 무효 우선도이다. 이 함수에서 지정한 범위의 우선도는 묘화가 일어나지 않는다.
  • GetReservedRenderTargetName(a)
    탄막풍 기동시에 확보한 렌더링 타겟 텍스처명을 취득한다. a는 인덱스 값으로 0부터 2까지 가능하다. 이 함수로 취득할 수 있는 텍스처가 반드시 존재한다.
  • CreateRenderTarget(A)
    렌더링 타겟 텍스처를 작성한다. A는 텍스처의 명칭이고, 성공 시 true가 반환된다. 이 함수로 작성하는 텍스처는, RenderToTextureA1에 사용 가능하다. 이 텍스처는 반드시 VRAM 상에 작성될 필요가 있는데, VRAM 용량이 모자랄 경우 실패할 가능성도 있다. 그림 1장당 VRAM을 1024*512*4=2.1MB 사용 가능하다. VRAM 용량이 충분한 상태에서는 실패할 가능성이 줄어든다. LoadTexture등 파일에서 읽고 작성하는 텍스처는 VRAM이 부족한 경우 시스템 메모리에 배치되기 때문에 실패하지 않지만, 시스템 메모리에 배치되면 묘화 속도가 떨어진다.
  • RenderToTextureA1(A,b,c,T/F)
    렌더링 타겟 텍스처에 지정된 우선도 사이의 묘화를 실행한다. A는 렌더링 타겟 텍스처의 이름, b는 개시점의 묘화 우선도, c는 종료점의 묘화 우선도이다. T/F는 렌더링 타겟을 클리어할지 여부이다.
  • SaveRenderedTextureA1(A,B)
    렌더링 타겟 텍스처를 파일에 보존한다. A는 렌더링 타겟 텍스처의 이름, b는 파일 이름이다. 보존하는 그림 파일은 함수 실행 직후에 읽어들여 사용 가능하다.
  • SaveRenderedTextureA2(A,B,c,d,e,f)
    렌더링 타겟 텍스처를 범위를 지정하여 파일에 보존한다. 렌더링 타겟 텍스처의 이름, B는 파일 이름, c,d,e,f는 보존하는 그림의 왼쪽, 위, 오른쪽, 아래 범위이다. 보존하는 그림 파일은 함수 실행 직후에 읽어들여 사용 가능하다.
  • SaveSnapShotA1(A)
    슈팅 게임 화면을 파일에 보존한다. A는 파일의 이름이다. 보존하는 그림 파일은 함수 실행 직후에 읽어들여 사용 가능하다.
  • SaveSnapShotA2(A,b,c,d,e)
    슈팅 게임 화면을 범위를 지정하여 파일에 보존한다. A는 파일의 이름이고, b,c,d,e는 보존하는 그림의 왼쪽, 위, 오른쪽 아래 범위이다. 보존하는 그림 파일은 함수 실행 직후에 읽어들여 사용 가능하다.

3D 카메라

  • SetCameraFocusX(a)
    카메라의 초점 x좌표를 설정한다. a는 카메라의 초점 x좌표이다.
  • SetCameraFocusY(a)
    카메라의 초점 y좌표를 설정한다. a는 카메라의 초점 y좌표이다.
  • SetCameraFocusZ(a)
    카메라의 초점 z좌표를 설정한다. a는 카메라의 초점 z좌표이다.
  • SetCameraFocusXYZ(a,b,c)
    카메라의 초점 x,y,z좌표를 설정한다. a는 카메라의 초점 x좌표, b는 카메라의 초점 y좌표, c는 카메라의 초점 z좌표이다.
  • SetCameraRadius(a)
    카메라와 초점의 거리를 설정한다. a는 카메라와 초점의 거리이다.
  • SetCameraAzimuthAngle(a)
    카메라의 초점으로부터의 방위각을 설정한다. a는 카메라의 초점으로부터의 방위각이다.
  • SetCameraElevationAngle(a)
    카메라의 초점으로부터의 앙각을 설정한다. a는 카메라의 초점으로부터의 앙각이다.
  • SetCameraYaw(a)
    카메라의 Yaw 수평각(y축 회전)을 설정한다. a는 카메라의 Yaw 수평각(y축 회전)이다.
  • SetCameraPitch(a)
    카메라의 Pitch 수직각(x축 회전)을 설정한다. a는 카메라의 Pitch 수직각(x축 회전)이다.
  • SetCameraRoll(a)
    카메라의 Roll 회전각(z축 회전)을 설정한다. a는 카메라의 Roll 회전각(z축 회전)이다.
  • GetCameraX()
    카메라의 x좌표를 취득한다.
  • GetCameraY()
    카메라의 y좌표를 취득한다.
  • GetCameraZ()
    카메라의 z좌표를 취득한다.
  • GetCameraFocusX()
    카메라의 초점 x좌표를 취득한다.
  • GetCameraFocusY()
    카메라의 초점 y좌표를 취득한다.
  • GetCameraFocusZ()
    카메라의 초점 z좌표를 취득한다.
  • GetCameraRadius()
    카메라와 초점의 거리를 취득한다.
  • GetCameraAzimuthAngle()
    카메라의 초점으로부터의 방위각을 취득한다.
  • GetCameraElevationAngle()
    카메라의 초점으로부터의 앙각을 취득한다.
  • GetCameraYaw()
    카메라의 Yaw 수평각(y축 회전)을 취득한다.
  • GetCameraPitch()
    카메라의 Pitch 수직각(x축 회전)을 취득한다.
  • GetCameraRoll()
    카메라의 Roll 회전각(z축 회전)을 취득한다.
  • SetCameraPerspectiveClip(a,b)
    퍼스펙티브 사영행렬 변환시의 클립 거리를 지정한다. 근거리 클립보다 가깝게, 원거리 클립보다 멀게 묘화할 수는 없다. a는 근거리 클리핑 거리로, 초기치는 10이다. b는 원거리 클리핑 거리로, 초기치는 2000이다.

2D 카메라

  • Set2DCameraFocusX(a)
    카메라의 초점 x좌표를 설정한다. 통상의 슈팅 게임 공간의 중심이 된다. a는 입력하는 값이다.
  • Set2DCameraAngleZ(a)
    카메라의 z 회전 각도를 설정한다. a는 입력하는 값이다.
  • Set2DCameraFocusY(a)
    카메라의 초점 y좌표를 설정한다. 통상의 슈팅 게임 공간의 중심이 된다. a는 입력하는 값이다.
  • Set2DCameraRatio(a)
    카메라의 확대율을 설정한다. a는 카메라의 확대율이다. 예를 들어 2로 설정하면, 초점의 위치를 중심으로부터 2배 확대한 화면이 표시된다. 초기값은 1이다.
  • Set2DCameraRatioX(a)
    카메라의 x축 방향 확대율을 설정한다. a는 카메라의 확대율이다. 예를 들어 2로 설정하면, 초점의 위치를 중심으로부터 x축 방향으로 2배 확대한 화면이 표시된다. 초기값은 1이다. 음수로 지정하면 좌우 반전이 된다.
  • Set2DCameraRatioY(a)
    카메라의 y축 방향 확대율을 설정한다. a는 카메라의 확대율이다. 예를 들어 2로 설정하면, 초점의 위치를 중심으로부터 y축 방향으로 2배 확대한 화면이 표시된다. 초기값은 1이다. 음수로 지정하면 상하 반전이 된다.
  • Reset2DCamera()
    카메라의 초점이나 확대율을 리셋한다. 초점은 슈팅 게임 공간의 중심으로, 확대율은 1로 된다.
  • Get2DCameraX()
    카메라의 x좌표를 취득한다.
  • Get2DCameraY()
    카메라의 y좌표를 취득한다.
  • Get2DCameraAngleZ()
    카메라의 z축 회전각도를 취득한다.
  • Get2DCameraRatio()
    카메라의 확대율을 취득한다.
  • Get2DCameraRatioX()
    카메라의 x축 확대율을 취득한다.
  • Get2DCameraRatioY()
    카메라의 y축 확대율을 취득한다.

스크립트 조작

  • LoadScript(A)
    지정한 스크립트 파일을 로드하여 컴파일한다. A는 스크립트 파일의 경로이다. 스크립트 ID를 출력한다.
  • LoadScriptInThread(A)
    지정한 스크립트 파일을 별도의 스레드에 로드하여 컴파일한다. A는 스크립트 파일의 경로이다. 스크립트 ID를 출력한다.
  • StartScript(A)
    지정한 스크립트를 개시한다. @Initialize가 호출되어도 @MainLoop가 개시된다. A는 스크립트의 ID이다.
  • CloseScript(a)
    지정한 스크립트를 종료한다. 이 함수가 호출될 때까지 스크립트는 동작을 계속한다. a는 스크립트의 ID이다.
  • IsCloseScript(a)
    지정한 스크립트가 종료되었는지 여부를 T/F로 출력한다. a는 스크립트의 ID이다.
  • SetScriptArgument(a,b,X)
    StartScript 개시 전에, 개시하는 스크립트에 넘겨주는 변수를 설정한다. a는 스크립트의 ID, b는 스크립트에 넘겨주는 변수이다. X는 임의의 수치이다. GetScriptArgument와 같이 쓰인다.
  • GetScriptArgument(a)
    StartScript 개시 전에, SetScriptArgument에서 설정한 변수를 취득한다. a는 SetScriptArgument에서 b에 해당한다.
  • GetScriptArgumentCount()
    StartScript 개시 전에, SetScriptArgument에서 설정한 변수의 개수를 취득한다.
  • CloseStgScene()
    슈팅 게임 신을 종료한다. 스크립트 선택 화면으로 돌아간다.
  • GetOwnScriptID()
    실행중인 자신의 스크립트 ID를 취득한다.
  • GetEventType()
    @Event 중 이벤트의 종류를 취득한다.
  • GetEventArgument(a)
    @Event 중 이벤트의 인수를 취득한다.
  • SetScriptResult(X)
    스크립트의 처리 결과를 설정한다. 주로 @Event 중 이벤트의 처리 결과를 설정하는 데 쓰인다. X는 이벤트의 반환값이다.
  • GetScriptResult(a)
    SetScriptResult에서 설정한 처리 결과를 취득한다. a는 스크립트의 ID이다.
  • SetAutoDeleteObject(T/F)
    스크립트를 종료할 때 자동적으로 오브젝트를 삭제할지 여부를 지정한다. 초기값은 F, 즉 삭제하지 않는다로 되어 있다.
  • NotifyEvent(a,b,X)
    지정한 ID의 스크립트의 @Event를 호출한다. a는 스크립트의 ID, b는 이벤트의 종류, X는 임의의 값이다. b는 EV_USER보다 큰 값을 사용한다.
  • NotifyEventAll(a,X)
    모든 스크립트의 @Event를 호출한다. 이벤트 종류는 EV_USER보다 큰 값을 사용한다.
  • GetScriptInfoA1(a,b)
    스크립트의 정보를 취득한다. a에는 스크립트의 경로가 들어가고, b에는 아래 값들이 들어가며 해당되는 내용들이 출력된다.
    INFO_SCRIPT_TYPE: 스크립트의 종류가 아래와 같이 출력된다.
    TYPE_SCRIPT_PLAYER: 플레이어 기체 스크립트
    TYPE_SCRIPT_SINGLE: Single 스크립트
    TYPE_SCRIPT_PLURAL: Plural 스크립트
    TYPE_SCRIPT_PACKAGE: Package 스크립트
    INFO_SCRIPT_PATH: 스크립트 경로 문자열이 출력된다.
    INFO_SCRIPT_ID: #ID 정보 문자열이 출력된다.
    INFO_SCRIPT_TITLE: #Title 정보 문자열이 출력된다.
    INFO_SCRIPT_TEXT: #Text 정보 문자열이 출력된다.
    INFO_SCRIPT_IMAGE: #Image 정보 문자열이 출력된다.
    INFO_SCRIPT_REPLAY_NAME: #ReplayName 정보 문자열이 출력된다.

시스템 관련

  • SetStgFrame(a,b,c,d,e,f)
    슈팅 게임 화면으로 쓰이는 네모 공간의 크기를 지정해주는 함수이다. a는 왼쪽, b는 위쪽, c는 오른쪽, d는 아래쪽의 좌표이며, e는 최소 묘화 우선도, f는 최대 묘화 우선도이다. 초기값은 32,16,416,464,20,80이다.
  • GetScore()
    현재 스코어를 취득한다.
  • AddScore(a)
    스코어를 가산한다. a는 가산하는 스코어의 수치이다.
  • GetGraze()
    그레이즈 수치를 최득한다.
  • AddGraze(a)
    그레이즈 수치를 가산한다. a는 가산하는 그레이즈 수치이다.
  • GetPoint()
    포인트(득점 아이템 취득 수)를 취득한다.
  • AddPoint(a)
    포인트(득점 아이템 취득 수)를 가산한다. a는 가산하는 포인트 수치이다.
  • SetItemRenderPriorityI(a)
    아이템의 디폴트 묘화 우선도를 설정한다. a는 묘화 우선도의 값이다.
  • SetShotRenderPriorityI(a)
    탄의 디폴트 묘화 우선도를 설정한다. a는 묘화 우선도의 값이다.
  • GetStgFameRenderPriorityMinI()
    슈팅 게임 프레임 최소 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetStgFrameRenderPriorityMaxI()
    슈팅 게임 프레임 최대 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetItemRenderPriorityI()
    아이템 디폴트 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetShotRenderPriorityI()
    탄 디폴트 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetPlayerRenderPriorityI()
    플레이어 기체 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetCameraFocusPermitPriorityI()
    2D 카메라 유효 최대 묘화 우선도를 취득한다. 0~100 사이의 값이다.
  • GetStgFrameLeft()
    슈팅 게임 공간의 좌단 좌표를 최득한다.
  • GetStgFrameTop()
    슈팅 게임 공간의 상단 좌표를 취득한다.
  • GetStgFrameWidth()
    슈팅 게임 공간의 폭을 취득한다.
  • GetStgFrameHeight()
    슈팅 게임 공간의 높이를 취득한다.
  • GetScreenWidth()
    스크린(묘화영역)의 폭을 취득한다.
  • GetScreenHeight()
    스크린(묘화영역)의 높이를 취득한다.
  • IsReplay()
    리플레이 중이면 T, 그렇지 않으면 F를 취득한다.
  • AddArchiveFile(A)
    화상이나 음성을 읽어올 때 검색 대상으로 아카이브 파일을 취득한다. A는 아카이브 파일의 경로이며, 정상적으로 불러들여왔을 경우 T를 출력한다.

플레이어 기체 관련

  • GetPlayerObjectID()
    플레이어 기체 오브젝트의 ID를 취득한다.
  • GetPlayerScriptID()
    플레이어 기체 스크립트의 ID를 취득한다. 플레이어 기체 스크립트 내에서 GetOwnScriptID를 실행할 때와 같은 값을 취득한다.
  • SetPlayerSpeed(a,b)
    플레이어 기체의 이동 속도를 설정한다. a는 통상 모드, b는 저속 모드에서의 속도이다.
  • SetPlayerClip(a,b,c,d)
    플레이어 기체의 이동 가능 범위를 설정한다. a는 왼쪽, b는 위쪽, c는 오른쪽, d는 아래쪽 한계선이다.
  • SetPlayerLife(a)
    플레이어 기체의 잔기 수를 설정한다. a는 잔기 수이다. 정수값이 아니어도 괜찮다.
  • SetPlayerSpell(a)
    플레이어 기체의 스펠(폭탄) 수를 설정한다. a는 스펠(폭탄) 수이다. 정수값이 아니어도 괜찮다.
  • SetPlayerPower(a)
    플레이어 기체의 파워를 설정한다. a는 파워 수치이다. 정수값이 아니어도 괜찮다.
  • SetPlayerInvincibilityFrame(a)
    플레이어 기체의 무적 시간을 설정한다. a는 무적 시간(프레임 단위)이다.
  • SetPlayerDownStateFrame(a)
    플레이어 기체가 격추되고 나서 부활할 때까지의 딜레이 시간을 프레임 단위로 설정한다. a는 딜레이 시간이다. 초기값은 120이다.
  • SetPlayerRebirthFrame(a)
    동방 프로젝트에서는 부활 봄이라고 하여, 플레이어 기체가 피탄되자마자 일정 시간 내에 폭탄을 사용하면 격추가 되지 않는 경우가 있다. 이 함수에서는 부활 봄의 유효 시간을 프레임 단위로 설정한다. a는 부활 봄 유효 시간이다. 초기값은 15이다.
  • SetPlayerRebirthLossFrame(a)
    플레이어 기체의 부활 봄 유효 시간의 감소량을 프레임 단위로 설정한다. 초기값은 3이다.
  • SetForbidPlayerShot(T/F)
    true로 설정할 경우 플레이어 기체는 총알을 발사할 수 없고, false일 경우 발사할 수 있다.
  • SetForbidPlayerSpell(T/F)
    true로 설정할 경우 플레어 기체는 폭탄을 사용할 수 없고, false일 경우 사용할 수 있다.
  • GetPlayerX()
    플레이어 기체의 x좌표를 취득한다.
  • GetPlayerY()
    플레이어 기체의 y좌표를 취득한다.
  • GetPlayerState()
    플레이어 기체의 상태를 취득한다. 결과값은 아래와 같다.
    STATE_NORMAL: 보통 상태
    STATE_HIT: 피탄당한 상태(부활 봄 발동 가능 시간 포함)
    STAGE_DOWN: 격추 후 복귀 전 상태
    STAGE_END: 잔기가 0인 종료 상태
  • GetPlayerLife()
    플레이어 기체의 잔기 수를 취득한다.
  • GetPlayerSpell()
    플레이어 기체의 스펠(폭탄) 수를 취득한다.
  • GetPlayerPower()
    플레이어 기체의 파워를 취득한다.
  • GetPlayerInvincibilityFrame()
    플레이어 기체 무적 시간을 프레임 단위로 취득한다.
  • GetPlayerDownStateFrame()
    플레이어 기체의 격추부터 복귀까지의 시간을 프레임 단위로 취득한다. GetPlayerState의 STATE_DOWN에서 표시되는 시간이다.
  • GetPlayerRebirthFrame()
    플레이어 기체의 부활 봄 유효 시간을 프레임 단위로 취득한다. GetPlayerState의 STATE_HIT에서 표시되는 시간이다.
  • GetAngleToPlayer(a)
    지정한 오브젝트로부터 플레이어 기체로의 각도를 취득한다. a는 오브젝트의 ID이다.
  • IsPermitPlayerShot()
    플레이어 기체의 탄 발사가 허가되었는지를 조사한다. 발사가 가능할 경우 true를 반환한다. 반드시 SetForbitPlayerShot에서 설정한 상태와 연동되지는 않는다.
  • IsPermitPlayerSpell()
    플레이어 기체의 스펠(폭탄) 사용이 허가되었는지를 조사한다. 사용이 가능할 경우 true를 반환한다. 반드시 SetForbitPlayerSpell에서 설정한 상태와 연동되지는 않는다. 예를 들어, 동방요요몽의 반혼접과 같은 라스트 스펠 발동중에는 강제적으로 false가 된다.
  • IsPlayerLastSpellWait()
    부활 봄 유효시간 중인지를 조사한다. 부활 봄 유효시간 중일 경우 true를 반환한다.
  • IsPlayerSpellActive()
    플레이어 기체가 스펠(폭탄) 사용 중인지를 조사한다. 사용 중일 경우 true를 반환한다.
  • GetPlayerID()
    플레이어 기체 스크립트의 ID를 문자열로 반환한다.
  • GetPlayerReplayName()
    플레이어 기체 스크립트의 리플레이 보존 명칭을 문자열로 반환한다.

적 관련

  • GetEnemyBossSceneObjectID()
    보스 신 오브젝트의 ID를 취득한다. 보스 신이 아닌 장소에서는 ID_INVALID가 반환된다.
  • GetEnemyBossObjectID()
    현재 출현하는 보스의 ID를 취득한다. 적 오브젝트 ID가 배열로 반환된다.
  • GetAllEnemyID()
    현재 출현하는 적 전부의 ID를 취득한다. 적 오브젝트 ID가 배열로 반환된다.
  • GetIntersectionRegistedEnemyID()
    플레이어 기체 샷의 충돌 판정에 닿은 적 오브젝트의 ID를 취득한다. 적 오브젝트 ID가 배열로 반환된다.
  • GetAllEnemyIntersectionPosition()
    모든 적의 충돌판정 위치를 취득하여 2차원 배열로 반환한다.
  • GetEnemyIntersectionPosition(a,b,c)
    지정한 위치에 가까이 있는 적들의 충돌 판정 위치를 취득하여 2차원 배열로 반환한다. a는 지정한 위치의 x좌표, b는 y좌표, c는 최대 취득수이다. 배열 맨 앞에는 가장 가까이 있는 적의 충돌 판정 위치가 나타난다.
  • GetEnemyIntersectionPositionByIdA1(a)
    지정한 적 오브젝트 ID의 모든 적 충돌 판정을 취득하여 2차원 배열로 반환한다. a는 적 오브젝트 ID이다. 배열 맨 앞에는 적으로부터 가장 가까이 있는 충돌 판정 위치가 나타난다.
  • GetEnemyIntersectionPositionByIdA2(a,b,c)
    지정한 적 오브젝트 ID의 모든 적 충돌 판정을 취득하여 2차원 배열로 반환한다. a는 적 오브젝트 ID, b는 지정한 위치의 x좌표, c는 y좌표이다. 배열 맨 앞에는 지정한 위치로부터 가장 가까이 있는 충돌 판정 위치가 나타난다.
  • LoadEnemyShotData(A)
    적탄 화상을 로드한다. A는 탄 설정 파일 경로이다. 몇 번이라도 불러낼 수 있으며, 여러 번 읽은 경우는 ID가 다르지 않으면 차례로 등록된다. 같은 이름의 파일은 한 번밖에 읽을 수 없다.
  • ReloadEnemyShotData(A)
    적탄 화상을 다시 로드한다. A는 탄 설정 파일 경로이다. LoadEnemyShotData를 쓰지 않고 이 함수를 써도 된다. LoadEnemyShotData와의 차이는 같은 이름이라도 몇 번이고 읽어올 수 있다는 것이다.

탄 관련

  • DeleteShotAll(a,b)
    화면상의 적탄을 전부 지우는 함수이다.
    a는 삭제하는 탄의 종류를 가리키며, TYPE_ALL, TYPE_SHOT가 들어갈 수 있다. TYPE_CHILD도 있으나 미실장이다. TYPE_ALL은 적탄 전체를, TYPE_SHOT은 스펠(폭탄) 내성이 없는 탄 전체를 지운다.
    b는 탄을 삭제하는 방법을 가리키며, TYPE_IMMEDIATE, TYPE_FADE, TYPE_ITEM이 들어갈 수 있다. TYPE_IMMEDIATE는 즉시 삭제, TYPE_FADE는 잔상을 남기며 삭제하며, TYPE_ITEM은 삭제된 탄을 전부 점수 아이템으로 바꾼다.
  • DeleteShotInCircle(a,b,c,d,e)
    주어진 원 안의 적탄만 전부 지우는 함수이다. a와 b는 DeleteShotAll 함수와 같다. c는 원의 x좌표, d는 원의 y좌표, e는 원의 반지름이다.
  • CreateShotA1(a,b,c,d,e,f)
    일정한 속도의 탄을 발사하는 함수이다. a는 x좌표, b는 y좌표, c는 속도, d는 각도, e는 탄의 모양, f는 발사까지 지연 시간이다.
  • CreateShotA2(a,b,c,d,e,f,g,h)
    등가속도 운동을 하는 탄을 발사하는 함수이다. a는 x좌표, b는 y좌표, c는 초기 속도, d는 각도, e는 가속도, f는 최대(최소) 속도, g는 탄의 모양, h는 발사까지 지연 시간이다.
  • CreateShotOA1(a,b,c,d,e)
    지정한 오브젝트 탄을 일정한 속도로 발사하는 함수이다. a는 오브젝트의 ID, b는 속도, c는 각도, d는 탄의 모양, e는 발사까지 지연 시간이다.
  • CreateShotB1(a,b,c,d,e,f)
    일정한 속도의 탄을 발사하는 함수이다. CreateShotA1 함수와는 달리 속도와 각도가 아닌 x축과 y축 방향 속도를 정해준다. a는 x좌표, b는 y좌표, c는 x축 방향 속도, d는 y축 방향 속도, e는 탄의 모양, f는 발사까지 지연 시간이다.
  • CreateShotB2(a,b,c,d,e,f,g,h,i,j)
    등가속도 운동을 하는 탄을 발사하는 함수이다. CreateShotB2 함수와는 달리 속도와 각도가 아닌 x축과 y축 방향 속도와 가속도를 정해준다. a는 x좌표, b는 y좌표, c는 x축 방향 초기 속도, d는 y축 방향 초기 속도, e는 x축 방향 가속도, f는 y축 방향 가속도, g는 x축 방향 최대(최소) 속도, h는 y축 방향 최대(최소) 속도, i는 탄의 모양, j는 발사까지 지연 시간이다.
  • CreateShotOB1(a,b,c,d,e)
    지정한 오브젝트 탄을 일정한 속도로 발사하는 함수이다. CreateShotOA1 함수와는 달리 속도와 각도가 아닌 x축과 y축 방향 속도를 정해준다. a는 오브젝트의 ID, b는 x축 방향 속도, c는 y축 방향 속도, d는 탄의 모양, e는 발사까지 지연 시간이다.
  • CreateLooseLaserA1(a,b,c,d,e,f,g,h)
    지정한 위치에서 등속으로 레이저 형태의 탄을 발사하는 함수이다. a는 x좌표, b는 y좌표, c는 속도, d는 각도, e는 레이저의 길이, f는 레이저의 폭, g는 레이저의 모양, h는 발사까지 지연 시간이다.
  • CreateStraightLaserA1(a,b,c,d,e,f,g,h)
    지정한 위치에 설치형 레이저를 만드는 함수이다. a는 설치점의 x좌표, b는 y좌표, c는 레이저의 각도, d는 레이저의 길이, e는 레이저의 폭, f는 소멸까지 걸리는 시간, g는 레이저의 모양, h는 레이저 설치까지 지연 시간이다.
  • CreateCurveLaserA1(a,b,c,d,e,f,g,h)
    지정한 위치에서 일정한 속도로 곡선 레이저를 발사하는 함수이다. a는 x좌표, b는 y좌표, c는 속도, d는 각도, e는 레이저의 길이, f는 레이저의 폭, g는 레이저의 모양, h는 발사까지 지연 시간이다.
  • SetShotIntersectionCircle(a,b,c)
    지정한 위치에 원형 충돌 판정을 만든다. 탄 오브젝트의 충돌 판정을 설정할 때 쓰인다. a는 x좌표, b는 y좌표, c는 충돌 판정의 반지름이다.
  • SetShotIntersectionLine(a,b,c,d,e)
    지정한 위치에 선형 충돌 판정을 만든다. 레이저 오브젝트의 충돌 판정을 설정할 때 쓰인다. a는 선분 한쪽 끝의 x좌표, b는 y좌표, c는 선분 반대쪽 끝의 x좌표, d는 y좌표, e는 선분의 폭이다.
  • GetShotIdInCircleA1(a,b,c)
    지정한 원 범위 안에 들어가 있는 탄 오브젝트 ID의 배열을 취득하는 함수이다. 이 함수가 플레이어 기체 스크립트에 들어가 있으면 적탄 ID의 배열을, 적 스크립트에 들어가 있으면 플레이어 기체에서 발사되는 탄의 ID 배열을 취득한다. a는 x좌표, b는 y좌표, c는 원의 반지름이다.
  • GetShotIdInCircleA2(a,b,c,d)
    지정한 원 범위 안에 들어가 있는 탄 오브젝트 ID의 배열을 취득하는 함수이다. GetShotIdInCircleA1 함수와는 달리 ID 배열을 취득하는 탄의 종류를 함수 안에서 설정한다. a는 x좌표, b는 y좌표, c는 원의 반지름이다. d에는 탄의 종류가 들어가는데, TARGET_ALL은 모든 탄, TARGET_ENEMY는 적탄, TARGET_PLAYER는 플레이어 기체에서 발사되는 탄이다.
  • GetShotCount(a)
    현재 존재하는 탄의 수를 취득하는 함수이다. a에는 탄의 종류가 들어가는데, TARGET_ALL은 모든 탄, TARGET_ENEMY는 적탄, TARGET_PLAYER는 플레이어 기체에서 발사되는 탄이다.
  • SetShotAutoDeleteClip(a,b,c,d)
    슈팅 게임을 플레이하다보면 탄이 화면 바깥으로 나가게 마련인데, 화면을 벗어난 탄은 한동안 존재하여 날아다니다가 화면 바깥에 있는 가상의 네모난 선과 접촉하게 되면 자동으로 삭제된다. 이 함수는 화면의 크기를 기준으로 했을 때 탄이 자동 삭제되는 이런 한계선을 지정해주는 함수이다. 초기치는 모두 64로 되어 있다. 너무 큰 수치를 설정하면 화면 바깥으로 탄이 나가도 탄이 한동안 삭제되지 않고 한계선을 만날 때까지 계속 데이터상에 존재하므로 게임이 느려질 우려가 커진다. a는 왼쪽 한계선, b는 위쪽 한계선, c는 오른쪽 한계선, d는 아래쪽 한계선이다.
  • GetShotDataInfoA1(a,b,c)
    탄 이미지 ID의 정보를 취득하는 함수이다. a는 탄 이미지의 ID이다. b에 TARGET_PLAYER가 들어가면 플레이어 기체에서 발사되는 탄, TARGET_ENEMY가 들어가면 적탄을 가리킨다. c에는 아래의 단어들이 들어갈 수 있다.
    • INFO_RECT: 탄 이미지를 나타내는 그림 파일에서 실제로 탄 이미지로 출력되는 범위를 [왼쪽, 위쪽, 오른쪽, 아래쪽] 형태의 배열로 출력한다.
      INFO_DELAY_COLOR: 탄이 지연될 때의 색상을 [R,G,B] 형태의 배열로 출력한다.
      INFO_BLEND: 탄 이미지가 어떤 방식으로 합성되었는지를 BLEND_ALPHA, BLEND_ADD_RGB, BLEND_ADD_ARGB 중 하나로 출력한다.
      INFO_COLLISION: 충돌 판정의 반지름 수치를 출력한다.
      INFO_COLLISION_LIST: 충돌 판정이 둘 이상 존재하는 탄일 경우, 충돌 판정의 반지름(r)과 x좌표(x), y좌표(y)를 [r,x,y]와 같은 2차원 배열의 형태로 출력한다.

아이템 관련

  • CreateItemA1(a,b,c,d)
    아이템을 출현시키는 함수이다. a에는 아래와 같은 단어들이 들어가며, b는 아이템이 생성되는 x좌표, c는 y좌표, d는 득점수를 나타낸다.
    ITEM_1UP: 익스텐드 아이템
    ITEM_1UP_S: 소형 익스텐드 아이템
    ITEM_SPELL: 스펠(폭탄) 아이템
    ITEM_SPELL_S: 소형 스펠(폭탄) 아이템
    ITEM_POWER: 파워 업 아이템
    ITEM_POWER_S: 소형 파워 업 아이템
    ITEM_POINT: 점수 아이템
    ITEM_POINT_S: 소형 점수 아이템
  • CreateItemA2(a,b,c,d,e,f)
    솟구쳤다가 천천히 낙하하는 아이템을 출현시키는 함수이다. a에 들어가는 단어는 CreateItemA1과 같지만 유저 정의 아이템을 뜻하는 ITEM_USER도 사용 가능하다. b는 아이템이 생성되는 x좌표, c는 y좌표, d는 아이템이 솟구쳐오르는 방향 지점의 x좌표, e는 y좌표, f는 득점수를 나타낸다.
  • CreateItemU1(a,b,c,d)
    유저 정의 아이템을 출현시키는 함수이다. a는 아이템의 ID, b는 아이템이 생성되는 x좌표, c는 y좌표, d는 득점수를 나타낸다.
  • CreateItemU2(a,b,c,d,e,f)
    솟구쳤다가 천천히 낙하하는 유저 정의 아이템을 출현시키는 함수이다. a는 아이템의 ID, b는 아이템이 생성되는 x좌표, c는 y좌표, d는 아이템이 솟구쳐오르는 방향 지점의 x좌표, e는 y좌표, f는 득점수를 나타낸다.
  • CollectAllItems()
    현재 존재하는 모든 아이템들을 플레이어 기체가 빨아들여 회수하게 한다.
  • CollectItemsByType(a)
    지정한 종류의 아이템만 골라서 플레이어 기체가 빨아들여 회수하게 한다. a에 들어가는 단어는 CreateItemA1과 같다.
  • CollectItemsInCircle(a,b,c)
    지정한 원 범위 안에 있는 아이템들만 플레이어 기체가 빨아들여 회수하게 한다. a는 원 중심의 x좌표, b는 y좌표, c는 반지름이다.
  • CancelCollectItems()
    플레이어 기체가 아이템들을 빨아들여 회수하는 것을 중단시킨다.
  • StartItemScript(A)
    유저 아이템 처리용 스크립트를 개시한다. A는 해당 스크립트의 경로이다.
  • LoadItemData(A)
    아이템 데이터를 로드한다. 몇 번이고 불러낼 수 있으며, 여러 번 불러들였을 경우에는 ID가 다르지 않다면 차례대로 등록된다. 이름이 같은 파일은 한 번만 읽어올 수 있다. A는 아이템 설정 파일의 경로이다.
  • ReloadItemData(A)
    아이템 데이터를 다시 로드한다. LoadItemData와 다른 점은 이름이 같은 파일도 여러 번 읽어올 수 있다는 것이다.
  • SetDefaultBonusItemEnable(T/F)
    탄 소거 시 시스템에 내장되어 있는 득점 아이템 출현 여부를 결정한다.

기타

  • StartSlow(a,b)
    슬로우 효과를 일으킨다. 동방요요몽콘파쿠 요우무를 생각하면 된다. a는 슬로우 효과를 거는 대상, b는 슬로우 효과의 FPS량이다. 적과 플레이어 기체가 동시에 사용할 경우 동시 실행이 되지만 더 늦은 편의 FPS가 적용된다. 너무 극단적으로 효과를 걸면 화면이 얼어붙는다.
  • StopSlow(a)
    슬로우 효과를 해제한다. a는 슬로우 효과가 걸린 대상이다.
  • IsIntersected_Line_Circle(a,b,c,d,e,f,g,h)
    선분과 원이 접촉하고 있는지를 조사한다. 접촉하면 true, 그렇지 않으면 false를 반환한다. a는 선분 시점의 x좌표, b는 선분 시점의 y좌표, c는 선분 종점의 x좌표, d는 선분 종점의 y좌표, e는 선분의 폭, f는 원의 중심 x좌표, g는 원의 중심 y좌표, h는 원의 반지름이다.
  • IsIntersected_Obj_Obj(a,b)
    오브젝트끼리 접촉하고 있는지를 조사한다. a와 b는 각 오브젝트의 ID이다. 접촉하고 있으면 true, 그렇지 않으면 false를 반환한다.
  • GetObject2dPosition(a)
    3D 좌표에 배치된 오브젝트의 2D 좌표를 취득하여 [x,y] 형태의 배열로 출력한다.
  • Get2dPosition(a,b,c)
    지정한 3D 좌표를 2D 좌표로 변환한 수치를 반환한다. a,b,c는 3D 좌표의 x,y,z 좌표 값이다. 결과값은 [x,y] 형태의 배열로 출력된다.

공통 오브젝트 조작 (Obj_)

  • Obj_Delete(a)
    지정한 오브젝트를 삭제한다. a는 오브젝트의 ID이다.
  • Obj_IsDeleted(a)
    지정한 오브젝트가 삭제되었는지를 조사한다. 삭제되었다면 true를, 그렇지 않으면 false를 반환한다. a는 오브젝트의 ID이다.
  • Obj_SetVisible(a,T/F)
    오브젝트를 표시할지 설정한다. a는 오브젝트의 ID이다. false로 설정하면 오브젝트가 표시되지 않는다.
  • Obj_SetRenderPriority(a,b)
    오브젝트의 묘화 우선도를 설정한다. a는 오브젝트의 ID, b는 묘화 우선도이다. b에는 0.0~1.0 사이의 값을 설정할 수 있다.
  • Obj_SetRenderPriorityI(a,b)
    오브젝트의 묘화 우선도를 설정한다. a는 오브젝트의 ID, b는 묘화 우선도이다. b에는 0~100 사이의 값을 설정할 수 있다.
  • Obj_GetValue(a,B)
    오브젝트에 할당되어 있는 키에 대응하는 값을 가져온다. a는 오브젝트의 ID, B는 키 문자열이다.
  • Obj_GetValueD(a,B,X)
    오브젝트에 할당되어 있는 키에 대응하는 값을 가져온다. a는 오브젝트의 ID, B는 키 문자열이다. 키 문자열에 대응하는 값이 없을 경우 X의 값을 가져온다.
  • Obj_SetValue(a,B,X)
    키에 대응하는 임의의 값을 오브젝트에 할당한다. a는 오브젝트의 ID, B는 키 문자열, X는 임의의 값이다.
  • Obj_DeleteValue(a,B,X)
    오브젝트에 할당되어 있는, 키에 대응하는 값을 삭제한다. a는 오브젝트의 ID, B는 키 문자열, X는 임의의 값이다.
  • Obj_IsValueExists(a,B)
    오브젝트에 할당되어 있는, 키에 대응하는 값이 존재하는지를 조사한다. 존재하면 true를, 그렇지 않으면 false를 반환한다. a는 오브젝트의 ID, B는 키 문자열이다.
  • Obj_GetType(a)
    오브젝트의 종류를 반환한다. a는 오브젝트의 ID이다. 결과값은 아래와 같다.
    OBJ_PRIMITIVE_2D: 2D 공간 자유 변형 오브젝트
    OBJ_SPRITE_2D: 2D 공간 구형 오브젝트 (ObjSprite2D_를 사용 가능한 오브젝트)
    OBJ_SPRITE_LIST_2D: 2D 공간 구형 리스트 오브젝트 (ObjSpriteList2D_를 사용 가능한 오브젝트)
    OBJ_PRIMITIVE_3D: 3D 공간 자유 변형 오브젝트
    OBJ_SPRITE_3D: 3D 공간 구형 오브젝트 (ObjSprite3D_를 사용 가능한 오브젝트)
    OBJ_MESH: 3D 메시 오브젝트 (ObjMesh_를 사용 가능한 오브젝트)
    OBJ_TEXT: 텍스트 오브젝트 (ObjText_를 사용 가능한 오브젝트)
    OBJ_SOUND: 음성 오브젝트 (ObjSound_를 사용 가능한 오브젝트)
    OBJ_FILE_TEXT: 텍스트 파일 오브젝트 (ObjFileT_를 사용 가능한 오브젝트)
    OBJ_FILE_BINARY: 바이너리 파일 오브젝트 (ObjFileB_를 사용 가능한 오브젝트)
    OBJ_PLAYER: 플레이어 기체 오브젝트 (ObjPlayer_를 사용 가능한 오브젝트)
    OBJ_SPELL: 플레이어 기체 스펠 오브젝트 (ObjSpell_를 사용 가능한 오브젝트)
    OBJ_ENEMY: 적 오브젝트(ObjEnemy_를 사용 가능한 오브젝트)
    OBJ_ENEMY_BOSS_SCENE: 적 보스 신 오브젝트 (ObjEnemyBossScene_를 사용 가능한 오브젝트)
    OBJ_SHOT: 통상 탄 오브젝트 (ObjShot_를 사용 가능한 오브젝트)
    OBJ_LOOSE_LASER: 사출형 레이저 오브젝트 (ObjLaser_를 사용 가능한 오브젝트)
    OBJ_STRAIGHT_LASER: 설치형 레이저 오브젝트 (ObjStLaser_를 사용 가능한 오브젝트)
    OBJ_CURVE_LASER: 굽은 레이저 오브젝트 (ObjLaser_를 사용 가능한 오브젝트)
    OBJ_ITEM: 아이템 오브젝트 (ObjItem_를 사용 가능한 오브젝트)

그림 묘사 오브젝트 조작 (ObjRender_)

정점 오브젝트 조작 (ObjPrim_)

2D구형 오브젝트 조작 (ObjSprite2D_)

2D구형 리스트 오브젝트 조작 (ObjSpriteList2D_)

3D구형 오브젝트 조작 (ObjSprite3D_)

3D메시 오브젝트 (ObjMesh_)

텍스트 오브젝트 조작 (ObjText_)

음성 오브젝트 조작 (ObjSound_)

파일 오브젝트 조작 (ObjFile)

텍스트 파일 오브젝트 조작 (ObjFileT_)

바이너리 파일 오브젝트 조작 (ObjFileB_)

이동 오브젝트 조작 (ObjMove_)

적 오브젝트 조작 (ObjEnemy)

보스 신 오브젝트 조작 (ObjEnemyBossScene_)

탄 (레이저 포함) 오브젝트 조작 (ObjShot_)

아이템 오브젝트 조작 (ObjItem_)

플레이어 기체 오브젝트 조작 (ObjPlayer_)

충돌 판정 오브젝트 조작 (ObjCol_)

플레이어 기체 스크립트 전용 함수

플레이어 기체 전용 함수

스펠 오브젝트 조작 (ObjSpell_)

시스템 스크립트 전용 함수

패키지 스크립트 전용 함수