1. 간단한 게임 구조 만들기
한 3일동안 c언어의 거의 모든것을 공부했으니까!?
공부했나? ㅋㅋ
함수와 구조체 그리고 포인터를 공부했으니 거의 모든것을 했다고 해도 과언이 아닐것이다.
이제는 지금까지 공부한것을 토대로 간단한 게임구조를 만들어보자~~
#include<stdio.h>
#include<string.h>
#include<cstdlib>
#include<ctime>
int walkStamina = 1;
int runStamina = 3;
int weaponPoint = 1;
int damagePoint = 1;
int restPoint = 10;
//무기 이름 배열
char weaponName[4][10] =
{ "axe", "sword" ,"gun" ,"rocket" };
//------------------struct
//주인공 캐릭터의 정보를 저장할 구조체 설계
//1.이름(배열) 2.체력(정수) 3.스테미너(정수) 4.무기종류(정수)
//5.무기내구도(정수)
struct Hero
{
char name[20];
unsigned int hp;
unsigned int stamina;
unsigned int weapon;
unsigned int weaponHp;
};
//랜덤함수
int getRandNum(int num) {
int returnValue;
returnValue = rand() % num;
return returnValue;
}
//------------------functions
//걷기(walk) 일정량의 스테미너를 감소
void walk(Hero *hero) {
printf("\n\n걷습니다.");
hero->stamina = hero->stamina - walkStamina;
if (hero->stamina < 0) {
hero->stamina = 0;
printf("스테미나가 없어서 더이상 움직일수 없습니다.");
}
}
//달리기(run) 더많은 스테미너 감소
void run(Hero *hero) {
printf("\n\n달립니다.");
hero->stamina = hero->stamina - runStamina;
if (hero->stamina < 0) {
hero->stamina = 0;
printf("스테미나가 없어서 더이상 움직일수 없습니다.");
}
}
//공격하기(attack) 무기 내구도를 감소
void attack(Hero *hero) {
printf("\n\n공격합니다.");
hero->weaponHp = hero->weaponHp - weaponPoint;
if (hero->weaponHp < 0) {
hero->weaponHp = 0;
printf("무기가 망가져서 더이상 공격할수 없습니다.");
}
}
//공격당함(damaged) 체력을 감소
void damaged(Hero *hero) {
printf("\n\n공격당합니다.");
hero->hp = hero->hp - damagePoint;
if (hero->hp < 0) {
hero->hp = 0;
printf("사망하셨습니다.");
}
}
//영웅 초기화 함수
void initHero(Hero *hero) {
strcpy(hero->name, "MyHero");
hero->hp = 100;
hero->stamina = 100;
hero->weapon = getRandNum(4);
hero->weaponHp = 10 + getRandNum(10);
}
void showStatus(Hero *hero) {
printf("\n현재 영웅 상태");
printf("\n이름: %s", hero->name);
printf("\n체력: %d", hero->hp);
printf("\n스테미나: %d", hero->stamina);
printf("\n무기: %s", weaponName[hero->weapon]);
printf("\n무기내구력: %d", hero->weaponHp);
}
//------------------main
void main(void) {
//랜덤함수를 위한 설정
srand((unsigned)time(NULL));
//캐릭터를 만든후 데이터를 채워준다
Hero myHero;
initHero(&myHero);
//걷는다---현재상태를 출력한다
walk(&myHero);
showStatus(&myHero);
//뛴다---현재상태를 출력한다
run(&myHero);
showStatus(&myHero);
//공격한다---현재상태를 출력한다
attack(&myHero);
showStatus(&myHero);
//공격당한다---현재상태를 출력한다
damaged(&myHero);
showStatus(&myHero);
}
위 그림과는 관계없다. ㅠㅠ
영웅 구조체를 만들고,
그 영웅의 행동을 함수로 만들어 보았습니다.
그리고 영웅이 행동을 했을대 제대로 적용되었는지 확인하기 위해서
상태확인 함수도 만들어서 적용했습니다.
'IT > 유니티' 카테고리의 다른 글
6. 유니티 교육 (유니티 기본) (0) | 2016.07.22 |
---|---|
5. 유니티 교육 (C++로 구현한 간단한 게임) (1) | 2016.07.21 |
3. 유니티 교육 (구조체와 함수) (0) | 2016.07.20 |
2. 유니티 교육 (C++교육) (0) | 2016.07.19 |
1. 유니티 교육 (C++교육) (0) | 2016.07.18 |