【趣味升级版】斗破苍穹修炼文字游戏HTML,CSS,JS

news2024/11/30 6:14:51

 

目录

图片展示

开始游戏

手动升级(满100%即可升级)

升级完成,即可解锁打怪模式

新增功能说明:

如何操作:

完整代码


实现一个简单的斗破苍穹修炼文字游戏,你可以使用HTML、CSS和JavaScript结合来构建游戏的界面和逻辑。以下是一个简化版的游戏框架示例,其中包含玩家修炼的过程、增加修炼进度和显示经验值的基本功能。

增加“打怪获得经验”、提升修炼速度、以及随机事件触发(比如“遇到困难”或“获得突破”等)

图片展示

开始游戏

手动升级(满100%即可升级)

升级完成,即可解锁打怪模式

新增功能说明:

  1. 打怪获得经验:新增了“打怪”按钮,玩家可以点击“打怪”按钮来获得经验。打怪时,经验有可能增加或减少(模拟失败)。

  2. 修炼速度提升:提升修炼速度的按钮仍然存在,但它现在有条件,玩家必须至少积累10点经验才能点击按钮来提升修炼速度。

  3. 随机事件:增加了一个随机的事件机制,玩家在打怪时可能会获得额外的经验,或者因失败损失一些经验。

  4. 游戏日志:所有事件的发生都会记录在游戏日志中,方便玩家查看游戏进程。

如何操作:

  • 修炼:点击“开始修炼”按钮,每次修炼进度和经验都会增加。完成修炼进度后,玩家可以提升修炼速度并解锁打怪功能。

  • 打怪:点击“打怪”按钮,进行打怪,每次会获得一定经验或损失经验。

  • 提升修炼速度:通过积累经验达到10点后,玩家可以提升修炼速度,使得修炼进度增长更快。

完整代码

<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>斗破苍穹修炼文字游戏</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f8ff;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        
        .game-container {
            text-align: center;
            padding: 20px;
            background-color: white;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            width: 350px;
        }
        
        h1 {
            font-size: 24px;
            color: #333;
        }
        
        button {
            padding: 10px 20px;
            font-size: 16px;
            margin-top: 20px;
            cursor: pointer;
            border: none;
            background-color: #4CAF50;
            color: white;
            border-radius: 5px;
            transition: background-color 0.3s;
        }
        
        button:hover {
            background-color: #45a049;
        }
        
        button:disabled {
            background-color: #ddd;
            cursor: not-allowed;
        }
        
        .log {
            margin-top: 20px;
            font-size: 14px;
            color: #555;
            max-height: 120px;
            overflow-y: auto;
        }
    </style>
</head>

<body>
    <div class="game-container">
        <h1>斗破苍穹 修炼游戏</h1>
        <p id="story">你是一名修炼者,踏上了修炼的道路。</p>
        <p>修炼进度: <span id="progress">0</span>%</p>
        <p>经验值: <span id="exp">0</span></p>
        <p>修炼速度: <span id="speed">1</span></p>

        <button id="trainBtn">开始修炼</button>
        <button id="fightBtn" disabled>去打怪</button>
        <button id="upgradeBtn" disabled>提升修炼速度</button>

        <div class="log" id="log"></div>
    </div>

    <script>
        // 获取页面元素
        const storyElement = document.getElementById('story');
        const progressElement = document.getElementById('progress');
        const expElement = document.getElementById('exp');
        const speedElement = document.getElementById('speed');
        const trainBtn = document.getElementById('trainBtn');
        const fightBtn = document.getElementById('fightBtn');
        const upgradeBtn = document.getElementById('upgradeBtn');
        const logElement = document.getElementById('log');

        // 游戏状态
        let progress = 0; // 修炼进度
        let exp = 0; // 经验值
        let trainingSpeed = 1; // 修炼速度
        let fightExp = 0; // 打怪经验
        let maxExp = 10; // 每次修炼所需的最大经验

        // 修炼按钮点击事件
        trainBtn.addEventListener('click', () => {
            if (progress < 100) {
                // 增加修炼进度和经验
                progress += trainingSpeed;
                exp += Math.floor(trainingSpeed / 2);

                // 更新页面显示
                progressElement.textContent = progress;
                expElement.textContent = exp;

                // 更新故事内容
                storyElement.textContent = `你正在修炼,进度已达到${progress}%`;

                // 检查是否完成修炼
                if (progress >= 100) {
                    storyElement.textContent = `修炼完成!你成功突破了瓶颈,修为大增!`;
                    trainBtn.disabled = true;
                    upgradeBtn.disabled = false;
                    fightBtn.disabled = false;
                    log("你完成了修炼,修为大增!");
                }
            }
        });

        // 提升修炼速度按钮点击事件
        upgradeBtn.addEventListener('click', () => {
            if (exp >= 10) {
                // 提升修炼速度
                trainingSpeed += 1;
                exp -= 10; // 消耗经验

                // 更新页面显示
                expElement.textContent = exp;
                speedElement.textContent = trainingSpeed;
                storyElement.textContent = `你的修炼速度提升了!当前修炼速度:${trainingSpeed}`;
                log(`你提升了修炼速度!当前速度:${trainingSpeed}`);

                // 禁用提升按钮
                if (exp < 10) {
                    upgradeBtn.disabled = true;
                }
            } else {
                storyElement.textContent = '经验不足,无法提升修炼速度!';
            }
        });

        // 打怪按钮点击事件
        fightBtn.addEventListener('click', () => {
            if (exp >= 5) {
                let fightResult = Math.random() > 0.5 ? "你打败了怪物,获得了经验!" : "你被怪物击败,损失了一些经验。";
                let fightExperience = Math.random() > 0.5 ? 5 : -3;

                // 更新经验
                exp += fightExperience;
                if (exp < 0) exp = 0;

                // 更新页面
                expElement.textContent = exp;
                log(fightResult);

                if (exp >= 10) {
                    upgradeBtn.disabled = false;
                }
            } else {
                log("你的经验不足,无法去打怪!");
            }
        });

        // 打印游戏日志
        function log(message) {
            let newLog = document.createElement('p');
            newLog.textContent = message;
            logElement.appendChild(newLog);
        }
    </script>
</body>

</html>

嗨,我是命运之光。如果你觉得我的分享有价值,不妨通过以下方式表达你的支持:👍 点赞来表达你的喜爱,📁 关注以获取我的最新消息,💬 评论与我交流你的见解。我会继续努力,为你带来更多精彩和实用的内容。

点击这里👉 ,获取最新动态,⚡️ 让信息传递更加迅速。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2250248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【在Linux世界中追寻伟大的One Piece】多线程(三)

目录 1 -> Linux线程同步 1.1 -> 条件变量 1.2 -> 同步概念与竞态条件 1.3 -> 条件变量函数 1.4 -> 为什么pthread_cond_wait需要互斥量 1.5 -> 条件变量使用规范 2 -> 生产者消费者模型 2.1 -> 为什么要使用生产者消费者模型 2.2 -> 生产…

AI数据分析工具(一)

Looker Studio&#xff08;谷歌&#xff09;-免费 优点 免费使用&#xff1a;对于中小型企业和个人用户来说&#xff0c;没有任何费用压力&#xff0c;可以免费享受到数据可视化和报表创建的功能。与Google服务集成&#xff1a;特别适合使用Google产品生态的企业&#xff0c;…

个人博客接入github issue风格的评论,utteranc,gitment

在做个人博客的时候&#xff0c;如果你需要评论功能&#xff0c;但是又不想构建用户体系和评论模块&#xff0c;那么可以直接使用github的issue提供的接口&#xff0c;对应的开源项目有utteranc和gitment&#xff0c;尤其是前者。 它们的原理是一样的&#xff1a;在博客文章下…

springboot 配置跨域访问

什么是 CORS&#xff1f; CORS&#xff0c;全称是“跨源资源共享”&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff0c;是一种Web应用程序的安全机制&#xff0c;用于控制不同源的资源之间的交互。 在Web应用程序中&#xff0c;CORS定义了一种机制&#xff0…

探索Python WebSocket新境界:picows库揭秘

文章目录 探索Python WebSocket新境界&#xff1a;picows库揭秘第一部分&#xff1a;背景介绍第二部分&#xff1a;picows库概述第三部分&#xff1a;安装picows库第四部分&#xff1a;简单库函数使用方法第五部分&#xff1a;场景应用第六部分&#xff1a;常见Bug及解决方案第…

【Linux】-学习笔记06

第二章、时间同步服务器 2.1时间同步服务器的使用 2.1.1系统时区时间的管理 timedatectl set-time "2024-02-13 10:41:55" ##设定系统时间 timedatectl list-timezones ##显示系统的所有时区 timedatectl set-timezone "Asia/Shangh…

Mac使用charles抓包

一、官网下载安装 二、配置Help--->SSL Proxying 有证书选择全部信任即可 三、设置系统代理&#xff0c;mac每次重启都需要选择&#xff0c;否则会没有数据 四、设置端口&#xff08;如果无法获取https&#xff09; 五、手机链接&#xff0c;从网页下载证书保存到手机&…

3d扫描建模产品开发-三维扫描检测蓝光检测

现当下&#xff0c;汽车制造、航空航天&#xff0c;还是消费电子、医疗器械&#xff0c;三维扫描检测与蓝光技术正以前所未有的精度和效率&#xff0c;推动着产品从概念到实物的快速转化。 三维扫描技术&#xff0c;简而言之&#xff0c;就是通过激光、结构光&#xff08;如蓝…

Hive中的基本数据类型和表的类型

Hive支持关系数据库中大多数据基本数据类型&#xff0c;同时还支持三种复杂类型。 示例&#xff1a; Hive表 创建表 – 直接建表法 create table t_page_view ( page_id bigint comment ‘页面ID’, page_name string comment ‘页面名称’, page_url string comment ‘页面…

Python PDF转JPG图片小工具

Python PDF转JPG图片小工具 1.简介 将单个pdf装换成jpg格式图片 Tip: 1、软件窗口默认最前端&#xff0c;不支持调整窗口大小&#xff1b; 2、可通过按钮选择PDF文件&#xff0c;也可以直接拖拽文件到窗口&#xff1b; 3、转换质量有5个档位&#xff0c;&#xff08;0.25&a…

剖析 SpringBoot 于夕阳红公寓管理系统架构搭建的核心作用

3 系统分析 本文作者在确定了研究的课题之后&#xff0c;从各大数字图书馆下载文献来阅读&#xff0c;并了解同类型的网站具备的大致功能&#xff0c;然后与本系统用户的实际需求结合进行分析&#xff0c;得出本系统要研究的具体功能与性能。虽然分析系统这一阶段性工作主要是确…

springboot336社区物资交易互助平台pf(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 社区物资交易互助平台设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff…

嵌入式linux系统中网络编程的具体实现

1.网络编程简介 要编写通过计算机网络通信的程序,首先要确定这些程序同通信的协议(protocol),在设计一个协议的细节之前,首先要分清程序是由哪个程序发起以及响应何时产生。 举例来说,一般认为WEB服务器程序是一个长时间运行的程序(守护进程deamon),它只在响应来自网…

vue3.0 根据富文本html页面生成压缩包(含视频在线地址、图片在线地址、前端截图、前端文档)

vue3.0生成压缩包&#xff08;含在线地址、前端截图、前端文档&#xff09; 需求描述效果开始下载插件包基本代码构造 点击下载按钮1.截图content元素&#xff0c;并转化为pdfcanvas putImageData、getImageDatagetImageData 获取指定矩形区域的像素信息putImageData 将这些数据…

由于导包而引发的错误

今天在调试时发现删除功能无论如何都无法实现&#xff0c;于是调试找到了mapper层的错误但不知道为什么报错。以下是报错信息。 Caused by: org.apache.ibatis.binding.BindingException: Parameter userIds not found. Available parameters are [arg0, collection, list]at o…

黑马2024AI+JavaWeb开发入门Day04-SpringBootWeb入门-HTTP协议-分层解耦-IOCDI飞书作业

视频地址&#xff1a;哔哩哔哩 讲义作业飞书地址&#xff1a;day04作业&#xff08;IOC&DI&#xff09; 作业很简单&#xff0c;主要是练习拆分为三层架构controller、service、dao&#xff0c;并基于IOC & DI进行解耦。 1、结构&#xff1a; 2、代码 网盘链接&…

【LeetCode: 145. 二叉树的后序遍历 + 栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

哈希表算法题

目录 题目一——1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 1.1.暴力解法1 1.2.暴力解法2 1.2.哈希表解法 题目二——面试题 01.02. 判定是否互为字符重排 - 力扣&#xff08;LeetCode&#xff09; 题目三——217. 存在重复元素 - 力扣&#xff08;LeetCode&…

Galaxy预测比特币期权活跃交易将持续至2027年,特朗普执政中期

随着比特币及其相关产品的交易量不断增加&#xff0c;加密货币市场的期权交易也迎来了前所未有的活跃。Galaxy Digital的交易团队指出&#xff0c;贝莱德IBIT ETF期权在美国股市的交易量已经创下了新纪录。首日交易量高达353,716份合约&#xff0c;几乎与2012年Facebook期权上线…

Java-GUI(登录界面示例)

简述&#xff1a; 步骤&#xff1a; (1)构造界面(将组件对象加入容器对象,注意&#xff1a;应设定对容器对象的布局策略&#xff09; (2)为界面加入事件响应处理(如单击按钮&#xff09; 实现&#xff1a; 两种方式实现&#xff0c;只有用户名为"admin"且密码为…