게임 아키텍처 개관
Architecture
Raven_Game
Raven_Map
TriggerSystem
Trigger
NavGraph
Wall2D
SpawnPoint
Raven_Bot
Path_Planner
Raven_Weapon
RailGun
RocketLauncher
Shotgun
Blaster
Raven_Projectile
Slug
Shell
Rocket
클래스 설명
Raven_Game
프로젝트의 허브
bot과 projectile들을 리스트로 갖고 있음
Method
Render / Update
LoadMap
파일을 통해 맵을 불러옴
isPathObstructed
지형과 충돌하지 않으면 조종행동, 충돌하면 길찾기
GetAllBotsInFOV
이 봇의 시야각 안에 들어오는 봇들만 반환
Raven_Map
게임 세계 지형을 구성하는 모든 객체의 보유자와 맵의 내비게이션 그래프를 가짐
Method
Render만 있음
LoadMap
파일을 통해 맵을 불러옴
AddSoundTrigger
CalculateCostToTravelBetweenNodes
UpdateTriggerSystem
Raven_Weapon
Method
AimAt
무기를 주어진 목표에 겨누기 위해 봇을 회전
ShootAt
목표 위치로 총알 발사
Render
순수 가상 함수
GetDesirability
그 무기를 사용하는 것이 바람직한지
퍼지논리 사용
Raven_Projectile
UML
BaseGameEntity
MovingEntity
Raven_Projectile
Projectile_Slug
Projectile_Bolt
Projectile_Rocket
Projectile_Pellet
Method
Update / Render
isDead
HasImpacted
Trigger
UML
BaseGameEntity
Trigger<Raven_Bot>
TriggerRegion
TriggerRegion_Circular
TriggerRegion_Rectangular
Trigger_Respawning<Raven_Bot>
Trigger_HealthGiver
Trigger_WeaponGiver
Trigger_LimitedLifetime<Raven_Bot>
Trigger_SoundNotify
공간적인 조건을 정의하는 객체
트리거를 사용해 모든 종류의 이벤트와 행동을 만들 수 있음
TriggerRegion
Method
isTouching
주어진 크기와 위치의 어떤 객체가 트리거 지역과 겹치면 참
제곱거리 공간으로 구함
연산량 감소
Trigger
모든 다른 트리거 타입이 유도되는 기본 클래스
Method
Try
호출시 트리거는 객체가 트리거의 영향 범위 내에 위치하는지 결정
Update
트리거가 가지는 모든 내부 상태 갱신
Trigger_Respawning
하나의 객체에 의해서 트리거된 후 일정 시간이 지나면 다시 비활성화되는 트리거를 정의
Trigger_Giver
어떤 객체가 부여자 트리거의 트리거 지역으로 들어가면 상응하는 아이템을 부여받음
Trigger_WeaponGiver
Trigger_HealthGiver
Trigger_LimitedLifetime
자동적으로 제거되기 전에 일정 수의 갱신 단계 동안 환경에 남아 있는 트리거
Trigger_SoundNotify
TriggerSystem
모든 등록된 트리거를 갱신하고 보여줌
이들의 수명이 끝나면 제거
Method
private
UpdateTriggers
죽은 트리거 제거 / 트리거 갱신
TryTriggers
등록된 트리거들 try 호출
public
Clear
등록된 모든 트리거를 지우고 리스트를 비움
Update
UpdateTriggers
TryTriggers
Register
트리거 등록
Render
그려줘야 될 트리거들
GetTriggers
게임
게임 소개