비행슈팅 게임 만들기 기본 마지막 4편 이다.
오늘은 키보드 상하좌우 키를 이용해서 비행기를 움직여 본다.
1. 키보드로 비행기 움직이기
- 키보드 이벤트를 받기 위해서 이벤트 리스너를 등록한다.
키보드가 눌려졌을때 즉각 반응하기 위해서 keydown 이벤트만 캐치한다.
- 이벤트 리스너에 등록된 keydown 콜백 함수를 정의한다.
window.addEventListener("load",drawScreen);
//키보드 조작하기
window.addEventListener("keydown",keydown);
var img = new Image();
img.src = "1942.png";
var x = 300, y = 200;
function keydown(e) {
let value = e.keyCode;
console.log("", value);
//업키(화살표)
if(e.keyCode == 38) {
y -= 5;
drawScreen();
}
//업키(화살표)
if(e.keyCode == 40) {
y += 5;
drawScreen();
}
}
function drawScreen(){
//(도화지)캔버스 얻어오기
var canvas = document.getElementById("canvas");
//(펜)컨텍스트 얻기
var context = canvas.getContext("2d");
// 펜 색상 입히기
context.fillStyle = "#1100000";
// 네모 상자 그리기
context.fillRect(0, 0, 800, 600);
// 이미지 그리기
context.drawImage(img, x, y ,100,80);
}
keydown() 함수 에서는 인자로 받은 이벤트 객체 e 를 사용해서 keyCode 값을 받아온다.
해당 키 코드값을 console.log 로 찍어보면 방향키의 키보드 키 값을 쉽게 알수 있다.
keyCode 는 키보드의 키 값을 의미한다. x,y 좌표값에 해당 키값에 따라 좌표점을 5 씩 가감 해준다.
그리고, 다시 drawScreen() 함수를 호출하여 화면을 다시 그려준다.
function keydown(e) {
let value = e.keyCode;
console.log("", value);
//위(화살표)
if(e.keyCode == 38) {
y -= 5;
drawScreen();
}
//아래(화살표)
if(e.keyCode == 40) {
y += 5;
drawScreen();
}
//좌(화살표)
if(e.keyCode == 37) {
x -= 5;
drawScreen();
}
//우(화살표)
if(e.keyCode == 39) {
x += 5;
drawScreen();
}
}
즉, 비행기가 키보드 방향키에 따라 상하좌우 로 이동함을 볼 수 있다.
위 결과 화면에서는
캔버스의 전체 크기와 컨텍스트로 그려진 검정 바탕 네모 영역이 구분 되어있다.
키 값에 따라 비행기가 좌측 하단으로 내려 간 것을 볼 수 있다.
4편의 포스팅을 통해서 우리는
1. 자바스크립트 코드로 캔버스 와 컨텍스트를 설정 하는 방법
2. 이미지를 로드 하는 방법
3. 키보드 이벤트를 적용하는 방법
을 배우며, 정리하게 되었다.
중급편에서는 아군기의 총알이 발사되고, 적군이 나오는 비행슈팅 게임의 틀을 완성해본다.
반응형
'게임 만들기' 카테고리의 다른 글
자바스크립트 타이머 만들기 (3) | 2024.10.01 |
---|---|
비행슈팅 게임 만들기 기본 3편 (0) | 2024.09.25 |
비행슈팅 게임 만들기 기본 2편 (2) | 2024.09.22 |
비행슈팅 게임 만들기 기본 1편 (1) | 2024.09.19 |
자바스크립트 캔버스에 이미지 띄우기 (2) | 2024.09.11 |
댓글