Skip to content

introduce this project's struct

ybs1164 edited this page Jul 11, 2020 · 2 revisions

This page be written korean.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ˆซ์ž์ƒ์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ์งค๋ง‰ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์„ ๋‚จ๊ฒจ๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ณตํ†ต์ ์œผ๋กœ "Object" ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด "Object" ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์˜ค๋ธŒ์ ํŠธ์˜ ๊ธฐ๋ณธ ์†์„ฑ๋“ค

์˜ค๋ธŒ์ ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹๋ณ„๊ฐ’ (ID), ์ข…๋ฅ˜๊ฐ’ (Type), ํŒ€๊ฐ’ (Team), ์ด๋ฆ„๊ฐ’ (Name)์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฐ’๋“ค์ž…๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ ์ขŒํ‘œ๊ฐ’ (X, Y), ๋ฐ˜์ง€๋ฆ„๊ฐ’ (R)์ด ๊ธฐ๋ณธ์œผ๋กœ ๊น”๊ณ  ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
๋‹ค์ดํ”ผ์˜ค์˜ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ์› ๋ชจ์–‘์˜ ํžˆํŠธ๋ฐ•์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ํˆฌ๋ช…๋„๊ฐ’ (Opacity), ์ ์ˆ˜๊ฐ’ (Exp), ๋ฐฉํ–ฅ๊ฐ’ (Dir), ์ฒด๋ ฅ๊ฐ’ (H, Mh, Lh)์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฒด๋ ฅ๊ฐ’์€ ํ˜„์žฌ ์ฒด๋ ฅ, ์ตœ๋Œ€ ์ฒด๋ ฅ, ์ด์ „ ํ”„๋ ˆ์ž„ ์ฒด๋ ฅ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋ ˆ์ž„ ์ฒด๋ ฅ์ด ๊ตณ์ด ์กด์žฌํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ๋ฏธ์ง€ ๊ณ„์‚ฐ ์‹œ์— ํ•„์š”ํ•œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
GetDH ๋Š” Get Damage Health ๋กœ, ํ˜„ ํ”„๋ ˆ์ž„์— ๋ฐ›์€ ๋ฐ๋ฏธ์ง€ ๋˜๋Š” ๋ฐ›์€ ์น˜์œ ๋Ÿ‰์˜ ์ดํ•ฉ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋‹ค์Œ, ์†๋„๊ฐ’ (Speed), ํ˜„์žฌ์†๋„๊ฐ’ (Dx, Dy)์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋‘ ๊ฐ’์˜ ์ฐจ์ด์ ์€ ํ˜„์žฌ์†๋„๊ฐ’์€ ์ขŒํ‘œ๊ฐ’์— ๋ฐ”๋กœ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฐ’์ธ ๋ฐ˜๋ฉด (์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์“ฐ์ž„) ์†๋„๊ฐ’์€ ๊ทธ ํ˜„์žฌ์†๋„๊ฐ’์— ๋”ํ•ด์ฃผ๋Š” ์†๋„๊ฐ’์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋™ ์‹œ์Šคํ…œ๊ณผ ๊ด€๋ จ๋œ ๋ฐ˜๋™๊ฐ’ (Bound), ์Šคํƒ ์Šค๊ฐ’ (Stance)์ด ์กด์žฌํ•˜๋Š”๋ฐ์š”,
ํ˜„์žฌ์˜ ๋ฐ˜๋™ ์‹œ์Šคํ…œ์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๊ณ  ๋ณด์•„์„œ, ์ด ๊ฐ’๋“ค์€ ์ถ”ํ›„์— ์‚ญ์ œ ๋˜๋Š” ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํƒฑํฌ๋งŒ์˜ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’๋“ค์€ ํ”Œ๋ ˆ์ด์–ด (Controller), ๋ ˆ๋ฒจ (Level), ์‹œ์•ผ๊ฐ’ (Sight), ์Šคํƒฏ๊ฐ’ (Stats, MaxStats)์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ญ.. ์•„์‹ค๋งŒํ•œ ๋‚ด์šฉ์ด๋‹ˆ ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฃผ์ธ๊ฐ’ (Owner) ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ƒํ•˜๊ด€๊ณ„๋ฅผ ํ‘œ๊ธฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์˜ค๋ธŒ์ ํŠธ์˜ ์ด๊ตฌ (Guns)

๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋Š” ์ด๊ตฌ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ด๊ตฌ๋Š” ๋˜๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค.
์ด๊ตฌ๋“ค ๋˜ํ•œ ์ผ๋ถ€ ์˜ค๋ธŒ์ ํŠธ์˜ ์†์„ฑ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ตฌ์˜ ์†์„ฑ ์ค‘ ์ค‘์š”ํ•œ ์†์„ฑ 4๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ์š”, Reload, DelayTime, WaitTime, ShotTime ์ž…๋‹ˆ๋‹ค.

Reload ๊ฐ’์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฆฌ๋กœ๋“œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด์•Œ์ด ๋ฐœ์‚ฌ๋˜๋Š” ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ’์ด์ฃ .

DelayTime (0 <= D <= R) ๊ฐ’์€ ์‹œ๊ฐ„ ๋‹น ๊ฐ์†Œํ•˜๋ฉฐ, ์ด ๊ฐ’์ด 0 ์ดํ•˜๊ฐ€ ๋˜์—ˆ์„ ๋•Œ ์ด์•Œ์„ ๋ฐœ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ด์•Œ์„ ๋ฐœ์‚ฌํ•˜๋ฉด DelayTime ์€ Reload ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฐ›์€ ๊ฐ’์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

WaitTime ๊ฐ’์€ ๋ฐœ์‚ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์ด์•Œ์ด ์–ผ๋งˆ๋‚˜ ๋Šฆ๊ฒŒ ๋ฐœ์‚ฌ๋˜๋Š”์ง€๋ฅผ ์ •ํ•ด์ฃผ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.
Reload ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํผ์„ผํŠธ ๊ฐ’์„ ์ง‘์–ด๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Reload ๋กœ ์ •ํ•ด์ง„ ๊ฐ’์ด 1์ดˆ๋ผ๋ฉด, WaitTime ๊ฐ’์ด 0.5 ์ผ ๋•Œ๋Š” 0.5์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค๋Š” ์†Œ๋ฆฌ์ž…๋‹ˆ๋‹ค.

ShotTime ๊ฐ’์€ ๋ฐœ์‚ฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ง€๋‚œ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ฐœ์‚ฌ๊ฐ€ ๋๋‚˜๋ฉด 0 ์œผ๋กœ ๋˜๋Œ์•„์˜ต๋‹ˆ๋‹ค.

  1. ์„œ๋ธŒ ์˜ค๋ธŒ์ ํŠธ (SubObjects)

์˜คํ†  ์ด๊ตฌ๋ฅผ ๋”ฐ๋กœ ํ•˜๋‚˜ ๋งŒ๋“ค๊ธฐ ๊ท€์ฐฎ์•„์„œ ๋งŒ๋“  ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
์˜ค๋ธŒ์ ํŠธ์— ์ข…์†๋˜๋Š” ์˜ค๋ธŒ์ ํŠธ๋กœ, ์ถฉ๋Œ๊ฐ์ง€๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ๋ ˆ์ด์–ด๊ฐ€ ์ข…์†๋œ ์˜ค๋ธŒ์ ํŠธ์˜ ์•ž ๋˜๋Š” ๋’ค๋กœ ๊ณ ์ •๋œ๋‹ค๋Š” ์ ๋งŒ ๋นผ๋ฉด ์˜ค๋ธŒ์ ํŠธ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์˜ค๋ธŒ์ ํŠธ์˜ ๋ ˆ์ด์–ด

์„œ๋ฒ„์˜ obj ํด๋”์˜ Objects ๋ฐฐ์—ด์˜ ์ˆœ์„œ๊ฐ€ ์˜ค๋ธŒ์ ํŠธ์˜ ๋ ˆ์ด์–ด๊ฐ’์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ฑ์Šค ๊ฐ’์ด ํด์ˆ˜๋ก ์•ž์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋Š” ์ด์•Œ์„ ์  ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

  1. ์˜ค๋ธŒ์ ํŠธ์˜ ํ•จ์ˆ˜๊ฐ’

์˜ค๋ธŒ์ ํŠธ์— Tick, Collision, KillEvent, DeadEvent ์ด 4๊ฐœ์˜ ํ•จ์ˆ˜๊ฐ’์„ ๋„ฃ์—ˆ๋Š”๋ฐ์š”,
๋‚˜์ค‘์— ์ƒˆ๋กœ์šด ํƒฑํฌ๊ฐ€ ๋‚˜์™”์„ ๋•Œ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ•˜๋ฉด์„œ๋„, ๊ธฐ์กด ๋‹ค์ดํ”ผ์˜ค์˜ ํŠน์ƒ‰์„ ์žƒ์ง€ ์•Š๋„๋ก ์ž์œ ๋„๋ฅผ ์ตœ๋Œ€ํ•œ ๋‚ฎ์ถฐ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
Tick ํ•จ์ˆ˜๋Š” ํ”„๋ ˆ์ž„ ๋‹น ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜,
Collision ํ•จ์ˆ˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ณผ ๋ถ€๋”ชํ˜”์„ ๋•Œ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜,
KillEvent ํ•จ์ˆ˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์ฃฝ์˜€์„ ๋•Œ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜,
DeadEvent ํ•จ์ˆ˜๋Š” ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ฃฝ์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ Necromancer๋‚˜ Predator๊ฐ™์€ ํƒฑํฌ๋“ค์„ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์˜ค๋ธŒ์ ํŠธ์˜ ๋ Œ๋”๋ง

ํด๋ผ์ด์–ธํŠธ์—์„œ์˜ ์˜ค๋ธŒ์ ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™”๋ฉด์˜ ์บ”๋ฒ„์Šค์— ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค.
๋ณดํ†ต์€ ๊ทธ๋ƒฅ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๊ตฌ ๋˜๋Š” ์„œ๋ธŒ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์กด์žฌํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํˆฌ๋ช…ํ•ด์ง€๋Š” ๋•Œ์—๋Š” ์ด๋ฏธ์ง€๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ตฌ๋ฅผ ํ†ตํ•ด ๋‚ด๋ฆฐ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ตฌ์™€ ์„œ๋ธŒ ์˜ค๋ธŒ์ ํŠธ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ตœ์†Œ์˜ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋กœ ์กฐ์ •ํ•ด ๊ทธ ์ด๋ฏธ์ง€ ์•ˆ์—์„œ ๊ทธ๋ฆฐ ํ›„,
๊ทธ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ์กด ์บ”๋ฒ„์Šค์— ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.

Clone this wiki locally