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

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.xdnf.cn/news/12428.html

相关文章:

  • Canal详解
  • win11部署suna
  • 1.人声伴奏分离
  • SQL进阶之旅 Day 18:数据分区与查询性能
  • [大A量化专栏] QMT常见问题QA
  • 海康工业相机文档大小写错误
  • K8S认证|CKS题库+答案| 4. RBAC - RoleBinding
  • Java并发编程实战 Day 11:并发设计模式
  • 火语言RPA--选择元素工具使用方法
  • 位运算(Bitwise Operations)深度解析
  • php中实现邮件发送功能
  • 2-深度学习挖短线股1
  • JS面试常见问题——数据类型篇
  • 边缘计算网关提升水产养殖尾水处理的远程运维效率
  • 【油藏地球物理正演软件ColchisFM】浅谈ColchisFM地震正演分析在地震资料解释中的作用(四)
  • 加密狗、注册机:常见的软件加密工具介绍
  • 利用NVivo进行数据可视化,重塑定性研究
  • 基于Selenium+Python的web自动化测试框架
  • Android Camera Hal中通过Neon指令优化数据拷贝
  • 使用扩散模型解决Talking Head生成中的头像抖动问题
  • 数据结构与算法——并查集
  • curl获取ip定位信息 --- libcurl-multi(三)
  • 在线OJ项目测试
  • [蓝桥杯]搭积木
  • OD 算法题 B卷【猴子吃桃】
  • 常用操作符,操作符相关笔试题(谷歌)及算法的优化(上)
  • C++编程——关于比较器的使用
  • 1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
  • 深入解析YUM与DNF:RPM包管理器的架构演进与功能对比
  • 前端flex、grid布局