Нужна помощь в правильной работе кнопки сброса.Когда вы нажимаете кнопку сброса, мне нужно переместить треугольник обратно в середину холста.Также, как я могу заставить синий круг двигаться как с большим треугольником, так и с меньшим красным треугольником.Есть еще одна очевидная проблема, но я хочу сосредоточиться только на этих двух проблемах.
<!DOCTYPE html>
<html>
<head>
<title>CPSC Assignment 6</title>
<meta charset="utf-8">
<script src="a6.js" type="text/javascript" defer></script>
</head>
<body onload="setUp();">
<h2>The Adventure of Terry the Triangle</h2>
<canvas id="myCanvas" width="500" height="500" style="border:1px solid black;">
</canvas><br>
<input type="button" id="reset" value="reset" onclick="reset();">
</body>
</html>
Вот код JavaScript
let canvas = document.getElementById("myCanvas");
let ctx = canvas.getContext("2d");
let canvasLength = 500;
let mid = canvasLength / 2;
let x = mid;
let y = mid;
let dir;
function setUp() {
drawTerry(x, y, dir);
addEventListener("keydown", function(event) {
if (event.keyCode == 37) {
x = x - 10;
if(x <= 10) {
ctx.clearRect(0, 0, canvasLength, canvasLength)
x = 0;
}
}
if (event.keyCode == 38) {
y = y - 10;
if(y <= 10) {
ctx.clearRect(0, 0, canvasLength, canvasLength)
y = 0;
}
}
if (event.keyCode == 39) {
x = x + 10;
if(x <= 10) {
ctx.clearRect(0, 0, canvasLength, canvasLength)
x = 0;
}
}
if (event.keyCode == 40) {
y = y + 10;
if(y <= 10) {
ctx.clearRect(0, 0, canvasLength, canvasLength)
y = 0;
}
}
drawTerry(x, y, dir);
})
}
function reset() {
ctx.clearRect(0, 0, canvasLength, canvasLength);
setUp();
}
function drawTerry(x, y, dir) {
ctx.save();
ctx.translate(x, y);
ctx.rotate(-30 * Math.PI / 180);
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 50);
ctx.rotate(60 * Math.PI / 180);
ctx.lineTo(0, 50);
ctx.lineTo(0, 0);
ctx.stroke();
ctx.restore();
ctx.save();
ctx.translate(x, y);
ctx.rotate(-30 * Math.PI / 180);
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 8);
ctx.rotate(60 * Math.PI / 180);
ctx.lineTo(0, 8);
ctx.lineTo(0, 0);
ctx.fillStyle = "red";
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.beginPath();
ctx.arc(mid, mid + 25, 3, 0, 2 * Math.PI);
ctx.fillStyle = "blue";
ctx.fill();
ctx.stroke();
ctx.closePath();
ctx.restore();
}