1. 입력처리

GetAsyncKeyState

vKey = 실제 버튼을 누르면 어떤 키가 눌렸다 라고 전송이 되면 그것과 대응 되는

가상 키코드

2. 텍스트에 색깔 주기

3. 랜덤

4. scene(씬)

위쪽 화살표가 눌렸는지 안 눌렸는지 체크

short : 2byte

0000 0000 0000 0000 : 키가 뺴진 상태 -> 0x0000

1000 0000 0000 0000 : 키가 눌린 상태 -> 0x8000

0000 0000 0000 0001 : 키가 계속 눌린 상태  -> 0x8001 => 사실상 필요없다.

Input.c (키 누르기)

#include "Common.h"
#include "Input.h"

//이전 프레임의 키 상태
bool s_prevKeyStates[256]; //isKeyDownOnPrevFrame

//현재 프레임의 키 상태
bool s_currentKeyStates[256]; //isKeyDownOnCurFrame

#define IS_KEY_DOWN(vkey) (0x8000 & GetAsyncKeyState(vkey))

void Input_Update(void)
{
	//이전 프레임의 키 내용 저장 및 혀재 프레임의 키 상태를 가져와야 함.
	memcpy(s_prevKeyStates, s_currentKeyStates, sizeof(s_currentKeyStates));

	for (int 32 vkey = 0; vkey < 256; ++vkey)
	{
		if (IS_KEY_DOWN(vkey))
		{
			s_currentKeyStates[vkey] = true;
		}
		else
		{
			s_currentKeystates[vkey] = false;
		}
	}
}

bool Input_GetKeyDown(uint8 vkey)
{
	if (false == s_preKeyStates[vkey] && true == s_currentKeyStates[vkey]
	{
		return true;
	}
	else
	{
		return false;
	}
}

bool Input_GetKey(uint8 vkey)
{
	if (true == s_prevKeyStates[vkey] && false == s_currentKeyStates[vkey]
	{
		return true;
	}
	else
	{
		return false;
	}
}

>--------< 핵심 아이디어 정리 >--------<
우리가 해결해야 할 문제?
> 현재 프레임에 키가 눌렸는지, 떼졌는지, 계속 눌린 상태인지 알고 싶음.

필요한 데이터
> 이전 프레임의 키 상태, 현재 프레임의 키 상태

GetKeyDown() -> 이전 프레임의 키가 떼졌을 때 && 현재 프레임의 키가 눌렸을 때
GetKeyUp() -> 이전 프레임의 키가 눌렸을 때 && 현재 프레임의 키가 떼졌을 때
GetKey() -> 이전 프레임의 키가 눌렸을 때 && 현재 프레임의 키가 눌렸을 때

--- 입력부 종료