JavaScript游戏开发是一个广泛且有趣的领域,涵盖了从简单的网页游戏到复杂的多人在线游戏。以下是一些基础的JavaScript游戏代码示例,帮助你入门:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>猜数字游戏</title>
<script>
function checkGuess() {
var numberToGuess = Math.floor(Math.random() * 100) + 1;
var guess = parseInt(document.getElementById('guess').value);
var message = document.getElementById('message');
if (isNaN(guess)) {
message.textContent = '请输入一个数字!';
} else if (guess < numberToGuess) {
message.textContent = '太小了,再试一次。';
} else if (guess > numberToGuess) {
message.textContent = '太大了,再试一次。';
} else {
message.textContent = '恭喜你,猜对了!';
}
}
</script>
</head>
<body>
<h1>猜数字游戏</h1>
<p>猜一个1到100之间的数字:</p>
<input type="text" id="guess">
<button onclick="checkGuess()">猜</button>
<p id="message"></p>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>贪吃蛇游戏</title>
<style>
canvas { display: block; margin: 0 auto; background: #eee; }
</style>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
canvas.width = 400;
canvas.height = 400;
let snake = [{x: 200, y: 200}];
let dx = 0, dy = 0;
let food = {x: 150, y: 150};
let score = 0;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'green';
snake.forEach(segment => ctx.fillRect(segment.x, segment.y, 10, 10));
ctx.fillStyle = 'red';
ctx.fillRect(food.x, food.y, 10, 10);
}
function update() {
const head = {x: snake[0].x + dx, y: snake[0].y + dy};
snake.unshift(head);
if (head.x === food.x && head.y === food.y) {
score++;
food = {x: Math.floor(Math.random() * 40) * 10, y: Math.floor(Math.random() * 40) * 10};
} else {
snake.pop();
}
if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height || checkCollision(head)) {
alert('游戏结束!得分:' + score);
document.location.reload();
}
}
function checkCollision(head) {
return snake.slice(1).some(segment => segment.x === head.x && segment.y === head.y);
}
document.addEventListener('keydown', e => {
switch(e.key) {
case 'ArrowUp': dx = 0; dy = -10; break;
case 'ArrowDown': dx = 0; dy = 10; break;
case 'ArrowLeft': dx = -10; dy = 0; break;
case 'ArrowRight': dx = 10; dy = 0; break;
}
});
setInterval(() => {
update();
draw();
}, 100);
</script>
</head>
<body>
<canvas id="gameCanvas"></canvas>
</body>
</html>
希望这些示例和信息对你有所帮助!如果你有更具体的问题或需要进一步的指导,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云