2
我正在嘗試製作HTML5 Canvas/JavaScript遊戲。我看了一些教程,我明白什麼是每個人的意圖,但我沒有得到正確的觸摸設備控制。基於HTML5/JavaScript的遊戲 - 通過觸摸控制x/y座標
我想讓我的'飛艇',我的手指觸摸屏幕。它不僅適用於我的鼠標所在的位置。
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<script type="text/javascript">
window.onload = function() {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var canvasWidth = canvas.offsetWidth;
var canvasHeight = canvas.offsetHeight;
var bg1 = new Image();
var bg2 = new Image();
bg1.src = "img/spritesheet.png";
bg2.src = "img/spritesheet.png";
var increment = -5;
var sYbg1 = 0;
var sYbg2 = 960;
var ship = new Image();
ship.src = "img/spritesheet.png";
var mouseX;
var mouseY;
canvas.onmousemove = function() {
mouseX = window.event.clientX - canvas.offsetLeft; // mousePositionX
inside the <canvas> element
mouseY = window.event.clientY - canvas.offsetTop; // mousePositionY
inside the <canvas> element
};
var animate = function() {
context.clearRect(0,0,canvasWidth,canvasHeight);
context.drawImage(bg1,0,sYbg1,canvasWidth,canvasHeight,0,0,canvasWidth,canvasHeight);
context.drawImage(bg2,0,sYbg2,canvasWidth,canvasHeight,0,0,canvasWidth,canvasHeight);
sYbg1 += increment;
sYbg2 += increment;
if(sYbg2 <= 0) {
sYbg1 = 0;
sYbg2 = 960;
}
context.drawImage(ship,320,0,65,105,(mouseX-32),(mouseY-52),65,105);
setTimeout(animate,25);
};
animate();
}
</script>
</head>
<body>
<canvas id="canvas" width="320" height="480"></canvas>
</body>
</html>
(我的代碼是唯一的工作在Chrome!) - >但那不重要不,我知道的window.event,它不是在FF工作。
我希望有人能向我解釋我需要做什麼。我試圖解決我的問題,一起使用onmousemove和onmousedown,但那也不適合我。非常感謝您的幫助!
非常感謝!這對我來說非常有用。我沒有注意到我需要一些觸摸事件處理程序而不是mousemove處理程序。這種類型現在對我很重要。謝謝! – JustDevelop