当前位置: 首页 > article >正文

html+css+js趣味小游戏~Cookie Clicker放置休闲(附源码)

下面是一个简单的记忆卡片配对游戏的完整代码,使用HTML、CSS和JavaScript实现:

html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Cookie Clicker 简化版</title>
</head>
<body><h1>Cookie Clicker</h1><img id="cookie" src="https://img.icons8.com/color/480/cookie.png" alt="Cookie"><div id="counter">饼干数量: 0</div><div id="upgrades"><div class="upgrade" data-upgrade="cursor" data-cost="15" data-multiplier="1"><h3>鼠标 (15)</h3><p>每秒生产 1 饼干</p></div><div class="upgrade" data-upgrade="grandma" data-cost="100" data-multiplier="5"><h3>奶奶 (100)</h3><p>每秒生产 5 饼干</p></div><div class="upgrade" data-upgrade="farm" data-cost="500" data-multiplier="20"><h3>农场 (500)</h3><p>每秒生产 20 饼干</p></div></div></body>
</html>

css

body {margin: 0;display: flex;flex-direction: column;justify-content: center;align-items: center;height: 100vh;background-color: #FFE4B5;font-family: Arial, sans-serif;
}
#cookie {width: 200px;height: 200px;cursor: pointer;transition: transform 0.1s;
}

JavaScript

let cookies = 0;
let cookiesPerSecond = 0;
const cookieElement = document.getElementById('cookie');
const counterElement = document.getElementById('counter');
const upgrades = document.querySelectorAll('.upgrade');// 点击饼干增加数量
cookieElement.addEventListener('click', () => {cookies++;updateCounter();
});// 更新饼干计数显示
function updateCounter() {counterElement.textContent = `饼干数量: ${cookies}`;
}// 检查是否可以购买升级项
function checkUpgrades() {upgrades.forEach(upgrade => {const cost = parseInt(upgrade.getAttribute('data-cost'));if (cookies >= cost) {upgrade.classList.remove('locked');} else {upgrade.classList.add('locked');}});
}

展示效果

Cookie Clicker

游戏说明

  1. 游戏目标:点击饼干积累数量,解锁升级建筑。数值膨胀机制带来长期成就感。
  2. 技术亮点:纯前端逻辑,依赖定时器更新数值,数据存储在本地Storage中。

如何扩展

  1. 增加难度级别(不同大小的网格)
  2. 添加计时功能
  3. 增加更多卡片符号或使用图片
  4. 添加音效(翻转、匹配成功等)
  5. 添加动画效果
  6. 实现高分记录系统

这个游戏适合所有年龄段的人玩,可以锻炼记忆力和反应能力。代码结构清晰,适合初学者学习JavaScript事件处理和DOM操作。

http://www.lryc.cn/news/2403926.html

相关文章:

  • 宝塔面板安装nodejs后,通过node -v获取不到版本号,报错node: command not found
  • SDC命令详解:使用set_propagated_clock命令进行约束
  • win32相关(消息Hook)
  • vue3单独封装表单校验函数
  • mysql 页的理解和实际分析
  • 分享一道力扣
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
  • 【算法设计与分析】实验——汽车加油问题, 删数问题(算法实现:代码,测试用例,结果分析,算法思路分析,总结)
  • Ubuntu2404 下搭建 Zephyr 开发环境
  • 现代C++特性(一):基本数据类型扩展
  • 【C++进阶篇】C++11新特性(下篇)
  • 全生命周期的智慧城市管理
  • echarts柱状图实现动态展示时报错
  • Redis故障转移
  • STM32学习笔记:定时器(TIM)原理与应用(详解篇)
  • JAVA获取ES连接并查询所有数据
  • 408第一季 - 数据结构 - 线性表
  • 第23讲、Odoo18 邮件系统整体架构
  • 【QT面试题】(三)
  • DeepSeek09-open-webui使用
  • HarmonyOS:Counter计数器组件
  • 数据类型 -- 字符
  • WordZero:让Markdown与Word文档自由转换的Golang利器
  • sqlsugar WhereIF条件的大于等于和等于查出来的坑
  • Pandas 技术解析:从数据结构到应用场景的深度探索
  • 数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
  • [c#]判定当前软件是否用管理员权限打开
  • 并发编程实战(生产者消费者模型)
  • 分布式微服务系统架构第144集:FastAPI全栈开发教育系统