[FlatEngine] 5. FlatKeyboard(키보드입력을 받는 싱글톤 클래스)

이성훈·2022년 10월 29일
0

CloneCoding-FlatEngine

목록 보기
6/7

이번에는 기본적인 키보드 입력을 구현해볼것이다.
앞으로 마우스입력을 받는 클래스, 게임패드 입력을 받는 클래스등 모두 싱글톤 클래스로 작성할것이다.

영상 > https://www.youtube.com/watch?v=OArgOjzSjg4&list=PLSlpr6o9vURx4vjomFuwrFhvhV1nhJ_Jc&index=24




FlatKeyboard클래스를 만들자

우선 싱글톤 클래스이고, 처음사용하기전 까지는 객체가 생성되지않으므로 읽기전용의 lazy객체를 생성할것이다.
이때 FlatKeyboard의생성자를 대신 전달하여?? 생성했다.
이번 영상에서 Lazy가 쓰이지 않았으므로 이후에 쓰일때 자세히 살펴보겠다.

그리고 객체를 원할때는 lazy의 값을 리턴하면 된다고한다.


다음으로, 키보드의 이전과 현재상태를 저장하는 값이 필요하다.

이렇게 선언해주며 동시에 monogame에 필요한 네임스페이스를 using해주자.


키가 눌리고 있는 상태인지, 또는 방금 막 눌렸는지를 체크해주는 함수를 작성한다.


이제 이 클래스를 실제로 사용해보기위해 Game 클래스로 넘어가보자.

폴더를 using해주고

Update함수에서 객체를 가져오고

가져온객체로부터 ESC키가 눌리면 프로그램이 종료되도록 수정해보고 테스트를 해보자.

잘 작동합니다잉

Clicked로 바꾸어도 잘 작동한다.


그럼 이를통해 키보드입력으로 렌더링할 텍스쳐를 움직이는 코드를 쉽게 짤 수있다.!!

객체선언해주고,
텍스쳐의 width값을 움직이도록 선언한 변수를 사용하고
업데이트 함수에서 키가 눌릴때마다 한번 움직이도록 해준다.!



과연 결과는..

우리의 귀여운 스마일씨가 움직이다 못해 영역밖으로 나가버린다.


그럼 이것을 누른상태면 연속적으로 움직이도록 짤 수 도 있다.

실제로 부드럽게 잘 움직인다.


앞으로 디버깅과정을 많이 사용할것이므로 이때 편의성을위해 프로젝트의 속성을 변경하도록 해보자.

콘솔로 설정하면 프로그램도 나오고 콘솔창도 동시에 띄어진다.
디버깅과정이 끝나면 다시 windows 에플리케이션으로 변경해주면 된다.

그리고 디버깅에 편하게 콘솔창을 사용하도록 코드를 짜주었다.

profile
I will be a socially developer

0개의 댓글