10) { T.check_p = 10; } if (T.check_m < 10) { T.check_m = 10; "> 10) { T.check_p = 10; } if (T.check_m < 10) { T.check_m = 10; "> 10) { T.check_p = 10; } if (T.check_m < 10) { T.check_m = 10; ">
#include "stdio.h"
struct Player
{
COORD P_Position;
float Time;
}P;
struct Bullet
{
COORD B_Position;
bool Delay;
float Time;
}B;
struct Text
{
int check_p;
int check_m;
}T;
const char* text_array[] =
{
"스페이스바를",
"누르면",
"다음으로 넘어갑니다.",
"PRESS SPACE KEY!!",
};
int main(void)
{
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
//CONSOLE_FONT_INFOEX info = { 0 };
//SetCurrentConsoleFontEx(h, FALSE, &info);
COORD coord;
T.check_p = 0;
T.check_m = 20;
while (true)
{
if (0x8000 & GetAsyncKeyState(VK_SPACE))
{
break;
}
system("cls");
coord = (COORD){ 3, T.check_p };
SetConsoleCursorPosition(h, coord);
puts(text_array[0]);
coord = (COORD){ 29, 10 };
SetConsoleCursorPosition(h, coord);
puts(text_array[1]);
coord = (COORD){ 50, T.check_m};
SetConsoleCursorPosition(h, coord);
puts(text_array[2]);
T.check_p++;
T.check_m--;
if (T.check_p > 10)
{
T.check_p = 10;
}
if (T.check_m < 10)
{
T.check_m = 10;
}
if (T.check_p == T.check_m)
{
coord = (COORD){ 24, 14 };
SetConsoleCursorPosition(h, coord);
puts(text_array[3]);
}
Sleep(100);
}
//플레이어 위치 입력
P.P_Position.X = 0, P.P_Position.Y = 0;
//총알 위치 입력
B.B_Position.X = 0, B.B_Position.Y = 0;
//총알 딜레이
B.Delay = false;
//시간 변수
P.Time = 0;
B.Time = 0;
float DeltaTime = 0.0f;
float s_prevTick = 0;
s_prevTick = clock();
//플레이어 이동, 총알 처리
while (1)
{
//현재시간 - 과거시간을 초단위로 나누고, 그 나눈 만큼 Time을 증가시킨다.
clock_t currentTick = clock();
DeltaTime = (float)(currentTick - s_prevTick) / CLOCKS_PER_SEC;
s_prevTick = currentTick;
//P.Time += DeltaTime;
//GetAsyncKeyState를 이용하여 switch 처럼 키를 눌러 이동
//플레이어 입력 처리
if (0x8000 & GetAsyncKeyState(VK_UP))
{
P.P_Position.Y--;
if (P.P_Position.Y < 0)
{
P.P_Position.Y = 0;
}
}
if (0x8000 & GetAsyncKeyState(VK_DOWN))
{
P.P_Position.Y++;
if (P.P_Position.Y > 20)
{
P.P_Position.Y = 20;
}
}
if (0x8000 & GetAsyncKeyState(VK_LEFT))
{
P.P_Position.X--;
if (P.P_Position.X < 0)
{
P.P_Position.X = 0;
}
}
if (0x8000 & GetAsyncKeyState(VK_RIGHT))
{
P.P_Position.X++;
if (P.P_Position.X > 50)
{
P.P_Position.X = 50;
}
}
int maxCount = 0;
//총알 입력 처리
if (0x8000 & GetAsyncKeyState(VK_SPACE))
{
B.B_Position.X = P.P_Position.X + 1;
B.B_Position.Y = P.P_Position.Y;
B.Delay = true;
}
//P.Time = 0;
if (B.Delay)
{
static float Delta = 0.0f;
Delta += DeltaTime;
if (Delta <= 3.0)
{
B.B_Position.X += 1;
}
if (Delta > 3.0)
{
B.Delay = false;
Delta = 0;
}
}
Sleep(5);
system("cls");
//플레이어 위치 출력
COORD pos = { P.P_Position.X, P.P_Position.Y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
printf("P");
//총알 위치 출력
if (B.Delay)
{
COORD pos2 = { B.B_Position.X, B.B_Position.Y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos2);
printf("o");
}
}
}