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** โš ๏ธ