자바스크립트에서 키보드 연속입력 부드럽게

Q. 자바스크립트에서 키보드 연속입력 부드럽게

1.자바스크립트안에서 한 캐릭터를 키보드를 꾹 눌러 움직이게 했을때
부드럽게 움직이지않고 딱 딱딱 딱딱딱딱딱딱딱 흐름으로 움직이는데요
키보드를 꾹눌러서 이동을해도 부드럽게 움직이는방법이 궁금합니다.

2. 캐릭터를 2마리 생성시켜 한 키보드에서 같이 움직인다했을때.
두 캐릭터가 동시에 움직이면 한 캐릭터만 움직이게됩니다 (키보드입력이 씹혀서)
키보드 동시 키 입력할수있는 방법도 궁금합니다.

A1. 키보드로 캐릭터 이동 부드럽게 하기 아래 코드들은 jQuery를 기반으로 합니다.

보통은 아래와 같은 코드로 캐릭터를 움직이도록 합니다.

키 이벤트를 잡아서 각 키가 눌렸을때 캐릭터를 이동 시키는건데요. 키를 누르고 있는 경우 키반복은 사용자 컴퓨터에 따라 다르게 반응할겁니다. 키보드 설정에 따라 달라질 수 있겠죠. 어찌 되었든 원하는대로 스무드~ 하게 움직여주지는 않습니다.

원하는대로 캐릭터가 부드럽게 움직이게 하는 문제는 타이머를 사용해 해결할 수 있는데요 아이디어는 간단합니다.

1. 키를 누르면 해당 키가 눌렸다는 정보를 저장 합니다.
2. 키를 놓으면 해당 키가 눌렸다는 정보를 해제 합니다.
3. 타이머를 이용해 주기적으로 (아주 짧게 아래 예에서는 0.01초) 어떤 키가 눌려 있는지 검사해서 눌려 있는 키에 대한 행동을 지정 합니다.

코드는 아래와 같습니다.

데모를 확인해 보세요. 데모 보기 어때요 ? 원하는대로 움직이나요 ?

A2. 캐릭터 2마리(?)를 동시에 움직이기

위의 방법을 사용하면 2마리도 동시에 움직일 수 있습니다.

추가로, 대각선으로도 움직일 수 있습니다.

이상, 건투를 빕니다.