t_test2
<!DOCTYPE html><html><head><title>t-test2</title>
<style>canvas {border: 1px solid black;}</style></head>
<body>
<canvas id="gameCanvas" width="400" height="400"></canvas>
<div><p id="dis1"></p><p id="dis2"></p></div>
<script>
// 要素取得
const canvas = document.getElementById("gameCanvas");
const context = canvas.getContext("2d");
// 初期位置と移動速度
let snakeX = 1;let snakeY = 1;let snakeSpeedX = 1;let snakeSpeedY = 0;
// ゲームループ
function gameLoop() {
snakeX += snakeSpeedX;snakeY += snakeSpeedY;
context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = "green";context.fillRect(snakeX, snakeY, 10, 10);
document.getElementById("dis1").textContent = `X: ${snakeX} Y: ${snakeY}`;
requestAnimationFrame(gameLoop);// ゲームループを再帰的に呼び出し
}
function handleTouch(event) {// タッチ位置を取得
const touchX = event.touches[0].clientX - canvas.offsetLeft;
const touchY = event.touches[0].clientY - canvas.offsetTop;
xx = touchX - snakeX;yy = touchY - snakeY;
document.getElementById("dis2").textContent = `X: ${touchX} Y: ${touchY} X: ${xx} Y: ${yy}`;
// タッチ位置とヘビの位置を比較して、移動方向を設定
if (xx < 0 && Math.abs(xx) > Math.abs(yy)) {snakeSpeedX = -1;snakeSpeedY = 0;
} else if (xx > 0 && Math.abs(xx) > Math.abs(yy)) {snakeSpeedX = 1;snakeSpeedY = 0;
} else if (yy < 0 && Math.abs(xx) < Math.abs(yy)) {snakeSpeedX = 0;snakeSpeedY = -1;
} else if (yy > 0 && Math.abs(xx) < Math.abs(yy)) {snakeSpeedX = 0;snakeSpeedY = 1;
}
}
// タッチイベントを監視
canvas.addEventListener("touchstart", handleTouch);
// ゲームループを開始
gameLoop();
</script>
</body></html>
使用変数
<!DOCTYPE html><html><head><title>t-test2</title>
<style>canvas {border: 1px solid black;}</style></head>
<body>
<canvas id="gameCanvas" width="400" height="400"></canvas>
<div><p id="dis1"></p><p id="dis2"></p></div>
<script>
// 要素取得
const canvas = document.getElementById("gameCanvas");
const context = canvas.getContext("2d");
// 初期位置と移動速度
let snakeX = 1;let snakeY = 1;let snakeSpeedX = 1;let snakeSpeedY = 0;
// ゲームループ
function gameLoop() {
snakeX += snakeSpeedX;snakeY += snakeSpeedY;
context.clearRect(0, 0, canvas.width, canvas.height);
context.fillStyle = "green";context.fillRect(snakeX, snakeY, 10, 10);
document.getElementById("dis1").textContent = `X: ${snakeX} Y: ${snakeY}`;
requestAnimationFrame(gameLoop);// ゲームループを再帰的に呼び出し
}
function handleTouch(event) {// タッチ位置を取得
const touchX = event.touches[0].clientX - canvas.offsetLeft;
const touchY = event.touches[0].clientY - canvas.offsetTop;
xx = touchX - snakeX;yy = touchY - snakeY;
document.getElementById("dis2").textContent = `X: ${touchX} Y: ${touchY} X: ${xx} Y: ${yy}`;
// タッチ位置とヘビの位置を比較して、移動方向を設定
if (xx < 0 && Math.abs(xx) > Math.abs(yy)) {snakeSpeedX = -1;snakeSpeedY = 0;
} else if (xx > 0 && Math.abs(xx) > Math.abs(yy)) {snakeSpeedX = 1;snakeSpeedY = 0;
} else if (yy < 0 && Math.abs(xx) < Math.abs(yy)) {snakeSpeedX = 0;snakeSpeedY = -1;
} else if (yy > 0 && Math.abs(xx) < Math.abs(yy)) {snakeSpeedX = 0;snakeSpeedY = 1;
}
}
// タッチイベントを監視
canvas.addEventListener("touchstart", handleTouch);
// ゲームループを開始
gameLoop();
</script>
</body></html>
使用変数
| canvas | |
| context | |
| fillStyle | |
| gameLoop -------( Function ) | |
| handleTouch -------( Function ) | |
| height | |
| id | |
| snakeSpeedX | |
| snakeSpeedY | |
| snakeX | |
| snakeY | |
| textContent | |
| touchX | |
| touchY | |
| width | |
| xx | |
| yy |