이 게임은 C++로 구현하여 만든 콘솔 기반 슈팅 게임입니다. 대학교 2학년 1학기에 과제를 통해 생애 처음으로 만든 실시간 기반의 게임입니다. 하나의 PC에서 로컬 2인 플레이를 지원하는 간단한 게임입니다.

 

📜 게임 소개

게임 이름 플랫폼 개발 기간 개발 도구
슈팅 게임
2021.04 ~ 2021.05 C++ (Console)

 

 

📺 미리 보기

 

📒 기타 정보

· Github

 

GitHub - Bonnate/Cpp_Galaga_game: Galag Game

Galag Game. Contribute to Bonnate/Cpp_Galaga_game development by creating an account on GitHub.

github.com

  • github 페이지에 프로젝트 리포지트리가 업로드 되어있습니다.

 

· 프로젝트에 대하여

  • 처음으로 만들어본 실시간 기반의 게임으로, 유니티와 같은 게임 로직 등 Time.DeltaTime의 개념을 몰랐을 때 Console에서 Time.Sleep()을 이용하여 프레임마다 텍스트 배열에서 움직임을 구현하여 만든 게임입니다.
  • 과제 요구사항에서 더욱 기능을 추가하여 적 객체간 충돌하여 겹치지 않는 알고리즘을 구현하여 적용하였습니다.
  • 2인 플레이가 가능하도록 다중키 입력도 지원하여 원활한 플레이가 가능한것이 특징입니다.

 

void RunGame()
{
	while (g_isContinue)
	{
		//GLIBALTIME
		++GLOBALTIMEA;

		if (GLOBALTIMEA > 100)
		{
			GLOBALTIMEA = 1;
			if (GLOBALTIMEA_100x++ % 2)SpawnEnemy();
		}

		Sleep(1);

		switch (MAX_PLAYERS)
		{
		case 1:
			sprintf(Text, "%d %d %d %d %d", Player_P[0]->GetXPos(), Player_P[0]->GetYPos(), Player_P[0]->GetHP(), GLOBALTIMEA, GLOBALTIMEA_100x);
			break;

		case 2:
			sprintf(Text, "%d %d %d %d %d %d %d", Player_P[0]->GetXPos(), Player_P[0]->GetYPos(), Player_P[0]->GetHP(), Player_P[1]->GetXPos(), Player_P[1]->GetYPos(), Player_P[1]->GetHP(), GLOBALTIMEA);
			break;
		}

		drawToBackBuffer(81, 69, Text);
		RunPlayer();
		RunEnemy();

		if (MAX_PLAYERS == 1) {
			DisplayInfo(Player_P[0]->GetHP());
		}
		else {
			DisplayInfo(Player_P[0]->GetHP(), Player_P[1]->GetHP());
		}


		render();
	}
}
  • While문 안에서 Sleep을 한 후 각 로직이 모두 호출되게하여 구현하였습니다.

 

 

'my portfolio' 카테고리의 다른 글

[유니티] Space Flight  (0) 2024.02.07
[C++ WinAPI] 테트리스  (0) 2023.09.24
[C++ WinAPI] 슈팅 게임  (1) 2023.09.24
[C++ Console] 오목 게임  (0) 2023.09.24
개인 프로젝트 Mate, 무료로 Steam에 출시!  (0) 2022.07.08
bonnate