c++는 언리얼의 스크립트 언어이다. 게임 뿐만 아니라 시스템, 게임 프로그래밍에 자주 쓰인다 이유는 속도가 매우 빠르다.
입문하기 어려워보이지만 화이팅!
비쥬얼 스튜디오-> 새 프로젝트 만들기-> 콘솔 앱 만들기 : Game1으로 이름 짓는다!
처음 보이는 화면은 hello world를 출력하기 위한 간단한 코드이다
std::out은 <<뒤의 문자를 출력한다
여기서 잠깐!
소스파일은 우리가 구현할 부분을 작성하는 곳
헤더 파일은 정의하는 곳
#pragma once은 전처리기로, 컴퓨터가 해석하기 전에 먼저 기능을 수행한다는 의미이다.(한번만 수행해주세요!)
#pragma once
#include <string>
class Actor{
public: //다른 사람들도 여기 있는 것을 가져다 쓸 수 있다. -> 자식들과 자신과 다른 사람도 쓸 수 있다.
Actor(int hp, int ad, std::string name); //생성자-> 객체를 생성 시 처음 실행되는 곳
void SetPosition(int position);
int GetPosition();
int GetHP();
virtual void Damage(int damage);
virtual void Attack(Actor* hit);
virtual void Move(bool front);
~Actor();
protected: //Actor에 상속된 자식들은 부모의 기능을 사용할 수 있다 -> 자식들과 자기만 사용 가능
std::string Name; //이름을 저장하는 변수
int HP;
int AD;
int POSITION;
};
함수란?
클래스 안에 속한 함수를 메소드라고 한다.
괄호 안에 입력값(파라미터)를 넣어서 해당 값을 돌려준다
포인터란?
파라미터가 실제의 것을 나타내지 않더라도 가리킨다는 의미
Actor 포인터는? Actor 포인트를 가리키는 것-> 맞는것은 hit
#include "Actor.h"
#include <iostream>
Actor::Actor(int hp, int ad, std::string name)
{
HP = hp;
AD = ad;
Name = name;
Position = 0;
}
void Actor::SetPosition(int position)
{
Position = position;
}
int Actor::GetPosition() {
return Position;
}
int Actor::GetHP()
{
return HP;
}
void Actor::Damage(int damage)
{
HP -= damage;
}
void Actor::Attack(Actor* hit)
{
hit->Damage(AD); //hit가 가리키는 아이한테 데미지를 줘라
}
void Actor::Move(bool front)
{
if (front)
{
Position += 1;
}
else
Position -= 1;
}
Actor::~Actor()
{
std::cout << Name << "죽다." << std::endl; //std::endl은 개행 문자
}
이번 시간에는 Actor에 대한 헤더파일과 소스파일을 작성해보았다~~
오랜만에 손수 작성하는 c++코드라서 재미있고 새롭게 알아가는 부분도 있었다!