Upload
mingeun-park
View
420
Download
0
Embed Size (px)
Citation preview
7. SUD 프로젝트 구현 (2)(L) C++ 프로그래밍
박민근
MAP10X10
PCHP/MP행동력아이템
MOBHP/MP스킬AI
게임 매니저
기본 클래스
• 맵은 우선 10 X 10 타일으로 구성된다 . • 각 타일은 맵정보 (MapInfo) 구조체로 구성된다 .
• 캐릭터는 키보드 입력으로 동서남북 (W,A,S,D) 로 이동 한다 . • 캐릭터가 이동하면 현재 위치를 출력한다 .
• 맵에 랜덤으로 몹을 배치 한다 . • 몹이 위치한 타일에 이동하면 몹과 전투 한다 .
• 공격은 정해진 데미지 범위 안에서 (MIN ~ MAX) 데미지를 입힌다 . • 일정한 확률로 피격 / 회피 / 방어를 한다 .
• 몹에게 죽으면 게임 오버• 몹에게 이기면 다시 또 이동을 시작한다 .
• 맵은 우선 10 X 10 타일으로 구성된다 . • 각 타일은 맵정보 (MapInfo) 구조체로 구성된다 .
• 캐릭터는 키보드 입력으로 동서남북 (W,A,S,D) 로 이동 한다 . • 캐릭터가 이동하면 현재 위치를 출력한다 .
• 맵에 랜덤으로 몹을 배치 한다 . • 몹이 위치한 타일에 이동하면 몹과 전투 한다 .
• 공격은 정해진 데미지 범위 안에서 (MIN ~ MAX) 데미지를 입힌다 . • 일정한 확률로 피격 / 회피 / 방어를 한다 .
• 몹에게 죽으면 게임 오버• 몹에게 이기면 다시 또 이동을 시작한다 .
Stdafx.h
CGameMap
CGameMap
• 맵은 우선 10 X 10 타일으로 구성된다 . • 각 타일은 맵정보 (MapInfo) 구조체로 구성된다 .
• 캐릭터는 키보드 입력으로 동서남북 (W,A,S,D) 로 이동 한다 . • 캐릭터가 이동하면 현재 위치를 출력한다 .
• 맵에 랜덤으로 몹을 배치 한다 . • 몹이 위치한 타일에 이동하면 몹과 전투 한다 .
• 공격은 정해진 데미지 범위 안에서 (MIN ~ MAX) 데미지를 입힌다 . • 일정한 확률로 피격 / 회피 / 방어를 한다 .
• 몹에게 죽으면 게임 오버• 몹에게 이기면 다시 또 이동을 시작한다 .
CCharacter
Enum 열거형
enum 열거형• 타입 종류같은 열거 해야 하는 값들을 저장하는 데이터 타입• 내부적으로는 int 형과 같은 4 바이트 변수다 .• 변수안에 들어갈 값들을 제한하여 정한다고 생각하면 된다 . • 정의된 값들은 디폴트로 0 부터 순차적으로 증가한다 .• 0 이 아닌 다른 특정한 값 (int 형 ) 으로 정의할 수도 있다 .
예 ) 히트 결과 • 함수 반환 값으로 구별이 필요
• Int 형으로 반환 => 0 – 미스 , 1 – 히트 , 2 – 파괴
• enum 형으로 선언
• MISS, HIT, DESTROY
• 반환값으로 enum 형을 반환
PC 의 생성
PC 위치 초기화
PC 의 이동 처리
실행 결과
• 맵은 우선 10 X 10 타일으로 구성된다 . • 각 타일은 맵정보 (MapInfo) 구조체로 구성된다 .
• 캐릭터는 키보드 입력으로 동서남북 (W,A,S,D) 로 이동 한다 . • 캐릭터가 이동하면 현재 위치를 출력한다 .
• 맵에 랜덤으로 몹을 배치 한다 . • 몹이 위치한 타일에 이동하면 몹과 전투 한다 .
• 공격은 정해진 데미지 범위 안에서 (MIN ~ MAX) 데미지를 입힌다 . • 일정한 확률로 피격 / 회피 / 방어를 한다 .
• 몹에게 죽으면 게임 오버• 몹에게 이기면 다시 또 이동을 시작한다 .
몹 (MOB) 의 배치
RANDOM
srand() 함수를 호출하여 , SEED 값을 설정하여 준다
맵 정보 추가
몹의 객체를 담고 있다 . 없으면 NULL 로 설정한다 .
맵의 정보 객체를 반환한다 .
안됨 !!스택 메모리에서 삭제된 Mob 을
참조하는 버그가 발생 !
몹의 생성 및 배치
몹의 생성 및 배치
몹의 생성 및 배치
실습 )
랜덤으로 맵사이즈의 ¼ 만큼의 수의 몹을 배치 하라