main.c

// 문자 출력 : printf() / putchar()

// 커서 이동 : SetConsoleCursorPosition

// 입력 : GetAsyncKeyState()

#include "stdio.h"

struct position
{
	int x;
	int y;
}player, bullet;

int main(void)
{
	//플레이어 위치
	player.x = 0, player.y = 0;
	//총알 위치
	bullet.x = 0, bullet.y = 0;

	//시간 변수
	float deltaTime;
	float s_deltaTime;
	float s_prevTick = 0;
	s_prevTick = clock();
	float Player_Time = 0;
	float Bullet_Time = 0;
	// 1. 현재 시점을 구한다.,
	// 2. 현재 시점과 이전 시점의 차이를 통해 흐른 시간을 구한다.

	//플레이어 이동
	while (1)
	{
		//현재시간 - 과거시간을 초단위로 나누고, 그 나눈 만큼 Time을 증가시킨다.
		clock_t currentTick = clock();
		float deltatime = (float)(currentTick - s_prevTick) / CLOCKS_PER_SEC;
		s_prevTick = currentTick;
		Player_Time += deltatime;

		if (Player_Time >= 0.1)
		{
			if (0x8000 & GetAsyncKeyState(VK_UP))
			{
				player.y--;

				if (player.y < 0)
				{
					player.y = 0;
				}
			}
			if (0x8000 & GetAsyncKeyState(VK_DOWN))
			{
				player.y++;

				if (player.y > 50)
				{
					player.y = 50;
				}
			}
			if (0x8000 & GetAsyncKeyState(VK_LEFT))
			{
				player.x--;

				if (player.x < 0)
				{
					player.x = 0;
				}
			}
			if (0x8000 & GetAsyncKeyState(VK_RIGHT))
			{
				player.x++;
				if (player.x > 50)
				{
					player.x = 50;
				}
			}
			//총알 입력
			if (0x8000 & GetAsyncKeyState(VK_SPACE))
			{
				//총알 위치
				bullet.x = player.x + 1;
				bullet.y = player.y;
			}
			
			Player_Time = 0;

				for (int i = 1; i <= 10; i++)
				{
					bullet.x++;
				}
			

			//총알 늘어나는것 delta time.

			//1. 총알 날아가야댐 (bool값으로 처리)
			//2. 그 bool값을 이용해서 총알이 존재하면 총알 위치를 앞으로 한칸 씩 땡겨준다.
			//3. 3초뒤에 사라지게.(delta 값)
			//초기화
			system("cls");

		}

		//플레이어 출력
		COORD pos = { player.x, player.y };
		SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
		printf("P");

		//총알 위치 출력
		COORD pos2 = { bullet.x, bullet.y };
		SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos2);
		printf("⇒");

		
	}

	//스페이스바를 누르면 총알이 생성 o
	// 생성 위치는 플레이어 위치 x가 +1
	// 총알은 n초마다 이동
	// 이동 방향은 x++
	// 3초가 지나면 사라짐
}

stdio.h

#pragma once

#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <assert.h>
#include <string.h>
#include <stdarg.h>
#include <time.h>
#include <Windows.h>

typedef int8_t        int8;
typedef int16_t       int16;
typedef int32_t       int32;
typedef int64_t       int64;
typedef uint8_t       uint8;
typedef uint16_t      uint16;
typedef uint32_t      uint32;
typedef uint64_t      uint64;