[1일차] c++언어로 게임 만들어보기

칼든개구리·2024년 12월 2일
0

[언리얼TO리얼]

목록 보기
1/42

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;
};

함수란?
클래스 안에 속한 함수를 메소드라고 한다.

괄호 안에 입력값(파라미터)를 넣어서 해당 값을 돌려준다

  • void : 아무것도 돌려주지 않는다
  • int : int 값을 되돌려준다
  • virtual: 가상 함수로, 여기서 구현된 기능을 상속된 자식이 재구현할 수 있다.

포인터란?
파라미터가 실제의 것을 나타내지 않더라도 가리킨다는 의미
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++코드라서 재미있고 새롭게 알아가는 부분도 있었다!

profile
메타쏭이

0개의 댓글