首页 > 热门 > 横图列表

用网页源代码展示一个贪吃蛇

横图列表 会员昵称:印修 关注 投稿量: 粉丝量: 关注量:   2024-07-02 23:20:48A+A-

用网页源代码展示一个贪吃蛇(图1)

展示一个简单的贪吃蛇游戏,可以使用HTML、CSS和JavaScript来实现。以下是一个完整的代码示例,包括HTML结构、CSS样式和JavaScript逻辑。

HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>贪吃蛇游戏</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div>
        <h1>贪吃蛇游戏</h1>
        <canvas id="gameCanvas" width="400" height="400"></canvas>
        <div>
            <button onclick="startGame()">开始游戏</button>
        </div>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS(styles.css)

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #f0f0f0;
}

.container {
    text-align: center;
}

canvas {
    border: 1px solid #000;
    background-color: #fff;
}

.controls {
    margin-top: 10px;
}

JavaScript(script.js)

const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');

const gridSize = 20;
const canvasSize = canvas.width;
const rows = canvasSize / gridSize;
const columns = canvasSize / gridSize;

let snake;
let food;
let direction;
let gameLoop;

function startGame() {
    snake = [{ x: 10, y: 10 }];
    direction = 'right';
    placeFood();
    clearInterval(gameLoop);
    gameLoop = setInterval(update, 100);
}

function placeFood() {
    food = {
        x: Math.floor(Math.random() * columns),
        y: Math.floor(Math.random() * rows)
    };
}

function update() {
    const head = { ...snake[0] };

    switch (direction) {
        case 'up':
            head.y -= 1;
            break;
        case 'down':
            head.y += 1;
            break;
        case 'left':
            head.x -= 1;
            break;
        case 'right':
            head.x += 1;
            break;
    }

    if (head.x < 0 || head.x >= columns || head.y < 0 || head.y >= rows || snake.some(segment => segment.x === head.x && segment.y === head.y)) {
        clearInterval(gameLoop);
        alert('游戏结束');
        return;
    }

    snake.unshift(head);

    if (head.x === food.x && head.y === food.y) {
        placeFood();
    } else {
        snake.pop();
    }

    draw();
}

function draw() {
    ctx.clearRect(0, 0, canvasSize, canvasSize);

    ctx.fillStyle = 'red';
    ctx.fillRect(food.x * gridSize, food.y * gridSize, gridSize, gridSize);

    ctx.fillStyle = 'green';
    snake.forEach(segment => {
        ctx.fillRect(segment.x * gridSize, segment.y * gridSize, gridSize, gridSize);
    });
}

document.addEventListener('keydown', e => {
    switch (e.key) {
        case 'ArrowUp':
            if (direction !== 'down') direction = 'up';
            break;
        case 'ArrowDown':
            if (direction !== 'up') direction = 'down';
            break;
        case 'ArrowLeft':
            if (direction !== 'right') direction = 'left';
            break;
        case 'ArrowRight':
            if (direction !== 'left') direction = 'right';
            break;
    }
});

运行步骤

  1. 创建一个文件夹,将上述代码分别保存为 index.htmlstyles.cssscript.js
  2. 打开 index.html 文件,就可以在浏览器中看到贪吃蛇游戏并开始玩游戏了。

这样,一个简单的贪吃蛇游戏就完成了。通过按键盘上的箭头键可以控制蛇的移动方向。


部分内容需要登录查看

本次有 徐州鑫坤机电设备有限公司 网站:www.xzxkjd.com 展现 转载分享注明本文地址!有疑问,请联系我们:xzxkjd@qq.com 谢谢!

点击这里复制本文地址 以上内容由用户上传和网络在 徐州鑫坤机电设备有限公司 整理呈现,如有侵权请联系站长:xzxkjd@qq.com !

相关内容

加载中~

Copyright © 2012-2024 徐州鑫坤机电设备有限公司 版权所有
苏ICP备2023032739号-1 苏ICP备2023032739号-2 苏公网安备32038202000884
开发中 | 关键词 | 网站地图 | 网站地图 | 网站地图 | TAG集合

今日IP人数 0 今日浏览量(PV) 0 昨日IP人数 0 昨日浏览量(PV) 0 30天浏览量(PV) 0 总访浏览量(PV) 0

网站已运行:

在线客服
服务热线

服务热线

0516-86596070

联系邮箱

服务热线

xzxkjd.@qq.com

微信咨询
我的网站名称
交流群
我的网站名称
返回顶部
X我的网站名称

截屏,微信识别二维码

微信号:xkyinxiu

(点击微信号复制,添加好友)

  打开微信

微信号已复制,请打开微信添加咨询详情!