36. 2. 개념이해 - 캐릭터
1. 공통된 정보
기본정보(ID, Name, …)
위치정보(X, Y, Direction, AreaRect, …)
비트맵정보(Texture, Width, Height, …)
애니메이션 정보(Frame, MaxFrame, FrameSpeed, …)
RPG캐릭터정보(HP, MP, Level, …)
부가적인 정보 …
37. 2. 개념이해 - 캐릭터
2. 공통된 기능
오브젝트 기본(Initialize, Update, Render, …)
캐릭터 기본(Move, Action, ChatBalloon, …)
공격과 피해(Attack, Damage, SkillAttack, …)
외형 변화(FrameUpdate, ColorUpdate, …)
부가적인 기능(Getter/Setter, …)
38. 2. 개념이해 - 캐릭터
3. 플레이어 커스터마이징
앞서 보여준 Car-Bus 상속 구조와 같은 경우
상황에 따라 여러가지 경우가 존재
예시 1) 플레이어의 Move 함수에는 Camera 의 이동을 포함
예시 2) 플레이어의 Move/Attack 함수에는 Packet 을 전송
예시 3) 플레이어의 행동에 따른 상황 전개 (NPC 행동 등)
39. 2. 개념이해 - 캐릭터
4. NPC 커스터마이징
인공지능 처리(AI_Update, …)
대화걸기 처리(Touch, InTouchArea, …)
이 부분은 기본 오브젝트에서 얼마나 공통적으로
많이 구현하느냐에 따라서 양이 달라짐
40. 2. 개념이해 - 캐릭터
5. 오브젝트 관리자
오브젝트 추가/제거(AddObject, RemoveObject, …)
오브젝트 전체 관리(Update, Render, …)
충돌처리(CollisionCheck, MissileCheck: 발사체 충돌처리, …)
기타 기능함수(GetNearestObject: 가장 가까운 객체, …)
41. 어떻게 만들지?
1. 타일맵 구현
2. 오브젝트 구현
3. 입력 처리
4. 그 외 전반적인 처리
42. 3. 어떻게 만들지? – 타일맵 구현
1. 번호에 타일맵을 위치시킴
32*32 타일셋을 반복문을 이용하여 그려줌
43. 3. 어떻게 만들지? – 타일맵 구현
2. 번호에 맞는 타일맵을 렌더링
타일셋은 가로 한줄에 8개가 있으므로 8이 기준
44. 3. 어떻게 만들지? – 타일맵 구현
3. 우선순위, 레이어에 맞게 렌더링
1. 우선순위에 초점을 맞춤
2. 해당 우선순위의 레이어1~3을 렌더링
51. 3. 어떻게 만들지? – 입력처리
2. 대화키(스페이스바)를 입력받았을때
지금 바라보고 있는 방향의 바로 앞에
존재하는 오브젝트를 얻어와서
1) 그 오브젝트가 NPC일 경우
대화 다이얼로그의 표시
2) 그 오브젝트가 몬스터일 경우
플레이어에 공격 모션을 취하고
오브젝트에 피해를 입힌다
(뻘겋게 만드는 애니메이션, 체력변수 감소)
52. 3. 어떻게 만들지? – 입력처리
2. 대화키(스페이스바)를 입력받았을때
1) 그 오브젝트가 NPC일 경우
대화 다이얼로그의 표시
2) 그 오브젝트가 몬스터일 경우
플레이어에 공격 모션을 취하고
오브젝트에 피해를 입힌다
(뻘겋게 만드는 애니메이션, 체력변수 감소)
53. 3. 어떻게 만들지? – 입력처리
2. 대화키(스페이스바)를 입력받았을때
2) 그 오브젝트가 몬스터일 경우
플레이어에 공격 모션을 취하고
오브젝트에 피해를 입힌다
(뻘겋게 만드는 애니메이션, 체력변수 감소)