JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Events: Task 2</title>
<style>
p {
color: purple;
margin: 0.5em 0;
}
* {
box-sizing: border-box;
}
canvas {
border: 1px solid black;
}
</style>
<link rel="stylesheet" href="../styles.css" />
</head>
<body>
<section class="preview">
</section>
<canvas width="480" height="320" tabindex="0">
</canvas>
</body>
</html>
JavaScript
const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");
function drawCircle(x, y, size) {
ctx.fillStyle = "white";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.fillStyle = "black";
ctx.arc(x, y, size, 0, 2 * Math.PI);
ctx.fill();
}
let x = 50;
let y = 50;
const size = 30;
drawCircle(x, y, size);
const handleKeydown = (e) => {
switch (e.key) {
case "d":
if (x >= canvas.width - 50) {
break;
}
x += 1;
drawCircle(x, y, size);
break;
case "a":
if (x <= 50) {
break;
}
x -= 1;
drawCircle(x, y, size);
break;
case "w":
if (y <= 50) {
break;
}
y -= 1;
drawCircle(x, y, size);
break;
case "s":
if (y >= canvas.height - 50) {
break;
}
y += 1;
drawCircle(x, y, size);
break;
}
};
canvas.addEventListener("keydown", handleKeydown);
// Add your code here