반응형
먼저, 모질라 캔버스 API 사용법
https://developer.mozilla.org/ko/docs/Web/API/Canvas_API/Tutorial/Basic_usage
라떼는~ 인터넷으로 플래시게임이라는 것을 많이 했었다
(지금은 유물속으로 사라진 야후꾸러기 같은...ㅜㅜ)
웹에서 이런 플래시게임을 할 수 있었던 것은, 어도비사의 플래시 플레이어 덕분이었다
그러나, 보안 문제로 어도비 플래시에 대한 지원이 점점 사라져서
지금은 유물이 되어버렸다
아무튼 어도비 플래시 없이도 웹에서 그림을 그리고 하는 그래픽을 구현할 수 있는데
그 중 하나가 바로 Canvas API를 사용하는 방법이다
HTML, JavaScript로 그림판 구현하기
<body>
<canvas id='canvas' width='500' height='500' style="border:1px solid black"></canvas>
</body>
<script>
var pos = {
drawable : false,
x : -1,
y : -1,
};
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var rect = canvas.getBoundingClientRect(); // 터치 스크린
canvas.addEventListener("mousedown", listener);
canvas.addEventListener("mousemove", listener);
canvas.addEventListener("mouseup", listener);
canvas.addEventListener("mouseout", listener);
/// 터치 스크린
canvas.addEventListener("touchstart", listener);
canvas.addEventListener("touchmove", listener);
canvas.addEventListener("touchend", listener);
function listener(e){
switch(e.type){
case "mousedown":
drawStart(e);
break;
case "mousemove":
if(pos.drawable)
draw(e);
break;
case "mouseout":
case "mouseup":
drawEnd();
break;
case "touchstart":
touchStart(e);
break;
case "touchmove":
if(pos.drawable)
touch(e);
break;
case "touchend":
drawEnd();
break;
default:
}
}
function drawStart(e){
pos.drawable = true;
ctx.beginPath();
pos.x = e.offsetX;
pos.y = e.offsetY;
ctx.moveTo(pos.x, pos.y);
}
function touchStart(e){
pos.drawable = true;
ctx.beginPath();
pos.x = e.touches[0].pageX - rect.left
pos.y = e.touches[0].pageY - rect.top
ctx.moveTo(pos.x, pos.y);
}
function draw(e){
ctx.lineTo(e.offsetX, e.offsetY);
pos.x = e.offsetX;
pos.y = e.offsetY;
ctx.stroke();
}
function touch(e){
ctx.lineTo(e.touches[0].pageX - rect.left, e.touches[0].pageY - rect.top);
pos.x = e.touches[0].pageX - rect.left;
pos.y = e.touches[0].pageY - rect.top;
ctx.stroke();
}
function drawEnd(){
pos.drawable = false;
pos.x = -1;
pos.y = -1;
}
</script>
예시
2편
2022.03.30 - [개발기록/Javascript] - [JS] 자바스크립트 캔버스 그림판 만들기 2 - canvas
반응형
'개발기록 > Javascript' 카테고리의 다른 글
[JS] 자바스크립트 스와이프 벽돌깨기 게임 만들기 - 1 (0) | 2022.06.12 |
---|---|
[JS] 자바스크립트 캔버스 그림판 만들기 2 - canvas (1) | 2022.03.30 |
댓글