Script API - GameEgg/STARPOO-II GitHub Wiki

<주의 : 자바스크립트의 Math.random 대신 제공해주는 random을 사용해주세요. 그래야 일정한 결과가 보장됩니다.>

제공하는 값

  1. 전역 상수
  2. myShips : array
  3. enemyShips : array

# 1. Global constants (전역 상수값)


<주의 : 상수의 수치는 참고용으로만 사용하고, 하드 코딩하지 마세요! 게임 버전이 올라감에 따라 실제 인게임 수치가 문서에 적힌 값과 달라질 수 있습니다! 상수명을 사용해주세요.>

dt			: 이전 update와 지금 update 사이의 시간 간격.
편의상 dt라는 이름을 가지나, 실제로는 시간과 무관하게 고정된 상수입니다.
(시뮬레이션이 컴퓨터 성능과 무관하게 일정하게 될 수 있도록 하기 위해)
shipMaxHp		: 한 함선이 가지는 HP (5)
shipMaxSpeed		: 함선의 최대 속도 (300m/s)
shipMaxRotSpeed		: 함선의 최대 회전 속도 (360 degree/s)
chargingSpeed		: 차징 스피드 (1.5/s)
shootingDelay		: 발사 대기시간 (0.8/s)
maxChargingPower	: 최대 차징 에너지 (5)
groundRadius		: 경기장 반지름 (1200m)

# 2. myShips : array

myShip
id			: 함선 id (적 함선과 내함선 상관없이 고유 식별 번호)
hp			: 함선 현재 hp
x			: 함선의 현재 위치 x 좌표값 
y			: 함선의 현재 위치 y 좌표값
spd			: 현재 함선의 속도
rotSpd			: 현재 함선의 회전 속도 (degree/s)
rot			: 함선이 현재 향하고 있는 각도 (-180 ~ 180)
rad			: 함선이 현재 향하고 있는 각도 radian 버전 (-pi ~ pi)
delay 			: 함선의 남은 딜레이 시간 (초)
isCharging 		: 현재 함선이 차징중인 상태인지 (true, false)
chargedPower		: 현재까지 함선이 차징한 에너지
shootingRot		: 함선의 발사 각도
shootingRad		: 함선의 발사 각도(라디안)
shootingPower		: 지금 차징중인 레이저의 파워
isDetected		: 적에게 발각됨(boolean)

# 3. enemyShips : array

ship
id			: 함선 id (적 함선과 내함선 상관없이 고유 식별 번호)
hp			: 함선 현재 hp
x			: 함선의 현재 위치 x 좌표값 
y			: 함선의 현재 위치 y 좌표값
rot			: 함선이 현재 향하고 있는 각도 (-180 ~ 180)
rad			: 함선이 현재 향하고 있는 각도 radian 버전 (-pi ~ pi)
delay 			: 함선의 남은 딜레이 시간 (초)
isCharging 		: 현재 함선이 차징중인 상태인지 (true, false)
chargedPower		: 현재까지 함선이 차징한 에너지
shootingRot		: 함선의 발사 각도
shootingRad		: 함선의 발사 각도(라디안)
shootingPower		: 발사 파워(에너지)

제공하는 함수

# 1. myShip에 대한 함수

  1. shoot(number) : 인자로 충전량을 입력하며, 충전량/chargingSpeed 만큼의 시간 이후에, shoot 함수를 실행할 당시 함선이 보고있던 방향으로 레이저를 발사한다. 레이저는 아군/적군을 구분하지 않고 배에 부딪히면 충전량만큼의 데미지를 주고 소멸한다. 레이저를 충전중이거나, 레이저를 발사한 이후 shootingDelay 만큼의 시간(초) 동안은 shoot 함수를 호출해도 아무 일도 일어나지 않는다.
  2. setSpeed(number) : 배의 전진속력(0 ~ shipMaxSpeed)
  3. setRotSpeed(number) : 배의 회전속도(-shipMaxRotSpeed ~ shipMaxRotSpeed)를 설정한다. 회전속도가 양수면 반시계 방향으로 돌고, 음수면 시계방향으로 돈다. (example) 만약 setRotSpeed(90)을 호출하였다면, 1초 후에 함선은 반시계방향으로 90도 회전한 상태가 된다.

# 2. 기타 제공되는 함수

  1. cos(number) : 인자로 degree를 쓸 수 있는 cos 함수이다.
  2. sin(number) : 인자로 degree를 쓸 수 있는 sin 함수이다.
  3. d2r(number) : degree to radian conversion
  4. r2d(number) : radian to degree conversion
  5. dist({x,y}, {x,y}) : 두 점 사이의 거리를 구하는 함수이다.
  6. log(string) : log 문자열 console에 print
  7. polarFrom({x,y,rot},{x,y}) -> rot, r : 첫 번째 인자를 기준점으로 두 번째 인자의 극좌표를 반환한다. 단, rot은 radian이 아닌 degree이다.
  8. polar({x,y}) -> rot, r : 경기장의 중심(0,0)을 기준점으로 데카르트 좌표를 극좌표로 변환한다.
  9. cartesian({r,rot}) -> x, y : 경기장의 중심(0,0)을 기준점으로 한 극좌표를 데카르트 좌표계로 변환한다.
  10. random() : 0~1 사이의 소수점 5자리의 수를 반환한다.
⚠️ **GitHub.com Fallback** ⚠️