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

废柴勇士(据说没有人能坚持37秒)

欢迎来到程序小院

废柴勇士

玩法:点击屏幕下方左右按键击杀怪物,怪物会在左右方向同时来袭,快速点击按钮进行击杀怪物,看您能够坚持多少秒,
据说还没有能够坚持37秒,快去击杀怪物挑战吧^^。

开始游戏icon-default.png?t=N7T8https://www.ormcc.com/play/gameStart/194

html

<canvas id="gameCanvas" width="480" height="800"></canvas>

css

h2.title{display: block;margin: 50px auto;text-align: center;
}

js

var heroLayer = null;
var monsterLayer = null;
var explosionLayer = null;var isFirstPlay = true; //是否第一次玩这个游戏
var prepareMonsterArr = [];//即将出现的怪物数组
var monsterArray = [];//已经出现的怪物
var monsterShadowArray = [];//所有已出现的怪物的影子
var delArray = [];//被砍死的怪物,准备删除
var touchLocationX = null;//触摸的X坐标位置
var positionY = null;//怪物和hero的Y坐标
var bgSprite = null; //背景图片
var shadowBatchNode = null;
var heroSprite = null; //主角
var heroShadow = null;//主角的影子
var targetX = 0;//怪物要到达的X坐标
var durationLabel = null;//时间标签
var duration = 0;//游戏坚持的时间
var hpMax = 3;
var hpLabel = null;//血量标签
var hpProgress = null;
var hp = 0;//血量
var hpNode = null;
var scoreLabel = null;//分数标签
var score = 0;//分数
var isGameOver = false;//游戏是否结束
var coolDowan = 0;//冷却时间
var skillProgress = null;//技能冷却进度条var isSkillPeriod = false; //是否在释放技能期间
var attackDir = 0;//hero攻击的方向,0表示不再攻击,1表示向左攻击,2表示向右攻击
var response = null;
var responsefailedLabel;//请求网络失败时显示的内容
var isSharelayer = false;//是否是分享界面var BgLayer = cc.Layer.extend({ctor:function(){this._super();bgSprite = cc.Sprite.create(res.bg1_jpg);bgSprite.setPosition(cc.p(240,400));bgSprite.setScale(1.6);this.addChild(bgSprite);}
});
/*** 第一次游戏时的引导过程*/
guidePrecess:function(){var noticeNode = cc.Node.create();var noticeSprite = cc.Sprite.create(res.notice_board_png);noticeSprite.setPosition(cc.p(240,840));//提示窗初始化在屏幕上方noticeNode.addChild(noticeSprite);noticeSprite.runAction(cc.Sequence.create(cc.MoveTo.create(0.3,cc.p(240,400)),cc.MoveTo.create(0.05,cc.p(240,420)),cc.MoveTo.create(0.05,cc.p(240,400))));//提示窗口移动到屏幕中间//添加一个巫妖精灵var lichSprite = cc.Sprite.create(res.monster6_1_png);lichSprite.setPosition(cc.p(-lichSprite.getContentSize().width/2,450));//初始位置在屏幕中间左侧外noticeNode.addChild(lichSprite);this.addChild(noticeNode,3);var lichMoveTo = cc.moveTo(0.2,cc.p(lichSprite.getContentSize().width/2,450));var lichAnim = cc.Animation.create();for(var i = 1; i <= 4; i++){var frame = "/default/game/fcys/res/monster6_" + i + ".png";lichAnim.addSpriteFrameWithFile(frame);}lichAnim.setDelayPerUnit(0.15);lichSprite.runAction(cc.RepeatForever.create(cc.Animate.create(lichAnim)));//播放帧动画lichSprite.runAction(cc.Sequence.create(cc.DelayTime.create(0.4),lichMoveTo,cc.CallFunc.create(noticeCallback)));//移动到屏幕左侧内,回调noticeCallback函数
}
//定时更新函数,更新游戏坚持时间、冷却时间、准备出现的怪物
updateDuration:function(dt){duration += dt;coolDowan += dt;if(coolDowan <= 30){//var to = cc.ProgressTo.create(0.01, (30 - coolDowan) / 30 * 100);//skillProgress.runAction(to);}else{coolDowan = 30;}var tempArr = [];for(var i = 0; i < prepareMonsterArr.length; i++){if(prepareMonsterArr[i].time <= duration){tempArr.push(prepareMonsterArr[i]);//即将出现的怪物的属性添加到tempArr数组中}else{break;}}for(var i = 0; i < tempArr.length; i++){this.createMonster(tempArr[i]);//创建即将出现的怪物}deleteChildFromArray(prepareMonsterArr,tempArr);//从prepareMonsterArr中删除已创建的怪物if(duration >= 88){gameOver();}
}
/*** 创建怪物* @param monsterData 怪物的属性*/
createMonster:function(prepareMonsterData){var monsterSprite = cc.Sprite.create("/default/game/fcys/res/monster" + prepareMonsterData.type + "_1.png");//根据类型选择对应的图片monsterSprite.setScale(1.0/0.8);monsterSprite.setAnchorPoint(cc.p(0.5, 0));var dir = Math.random();if(Math.random() < prepareMonsterData.direction){targetX = 180;monsterSprite.setPosition(cc.p(-30,positionY - 55));}else{targetX = 300;monsterSprite.setPosition(cc.p(510,positionY - 55));monsterSprite.setFlippedX(true);//右边出现的怪物镜像显示}/*if(prepareMonsterData.direction == 0){//如果怪物出现的方向是随机的,则产生一个1或2的随机数,1表示左边,2表示右边prepareMonsterData.direction = Math.floor(Math.random() * 10 % 2 + 1);}if(prepareMonsterData.direction == 1){//从左边出现的怪物targetX = 180;monsterSprite.setPosition(cc.p(-30,positionY - 65));}else if(prepareMonsterData.direction == 2){//从右边出现的怪物targetX = 300;monsterSprite.setPosition(cc.p(510,positionY - 65));monsterSprite.setFlippedX(true);//右边出现的怪物镜像显示}*/monsterArray.push(monsterSprite);//已出现的怪物添加到monsterArray数组中monsterLayer.getChildByTag(prepareMonsterData.type).addChild(monsterSprite,1,prepareMonsterData.type);//添加怪物到Layer上,TAG即为怪物的类型//不同的怪物类型初始化不同的血量if(prepareMonsterData.type == 1 || prepareMonsterData.type ==3|| prepareMonsterData.type == 4 || prepareMonsterData.type == 5){monsterSprite.setUserData(monsterUserData(1,1));}else{monsterSprite.setUserData(monsterUserData(2,2));}var walkLine = createMonsterWalkLine(prepareMonsterData.type,prepareMonsterData.rampageProb);//根据怪物类型设置怪物的行走路线和Actionif(prepareMonsterData.type ==1 || prepareMonsterData.type == 2|| prepareMonsterData.type == 5 || prepareMonsterData.type == 6){monsterSprite.runAction(createMonsterWalkAnimate(prepareMonsterData.type));monsterSprite.runAction(cc.Sequence.create(walkLine, cc.CallFunc.create(monsterAttackCallback)));}else if(prepareMonsterData.type ==3 || prepareMonsterData.type ==4){monsterSprite.runAction(walkLine);}
}

源码icon-default.png?t=N7T8https://www.ormcc.com/

需要源码请关注添加好友哦^ ^

转载:欢迎来到本站,转载请注明文章出处https://ormcc.com/

相关文章:

废柴勇士(据说没有人能坚持37秒)

欢迎来到程序小院 废柴勇士 玩法&#xff1a;点击屏幕下方左右按键击杀怪物&#xff0c;怪物会在左右方向同时来袭&#xff0c;快速点击按钮进行击杀怪物&#xff0c;看您能够坚持多少秒&#xff0c; 据说还没有能够坚持37秒&#xff0c;快去击杀怪物挑战吧^^。开始游戏https:…...

buuctf_练[羊城杯2020]easyphp

[羊城杯2020]easyphp 文章目录 [羊城杯2020]easyphp掌握知识解题思路关键paylaod 掌握知识 ​ .htaccess文件的利用&#xff0c;把自己指定当做 php文件处理&#xff1b;preg_match正则匹配的了解&#xff0c;stristr函数的绕过&#xff1b;file_put_contents文件写入操作的了…...

【Linux】安装配置虚拟机及虚拟机操作系统的安装

目录 一、操作系统 1. 介绍 2. 功能 3. 有哪些 4. 个人版本和服务器版本的区别 二、VMWare虚拟机 1. 安装 2. 配置 三、安装配置Windows Server 1. 配置 2. 安装 四、虚拟机的环境配置及连接 1. 主机连接虚拟机 2. 虚拟机环境配置及共享 3. 环境配置 一、操作系…...

hugo-stack for github

静态博客框架jekyll、hexo和hugo三者之间的区别与差异 博客生成器? 全名为静态网站生成器&#xff0c; 可在任意拥有主机功能的环境下寄存(托管)可直接配合域名进行全球访问 劣势: 每次更新网页必须重新生成整个网站编译速度&#xff08;单位&#xff1a;秒&#xff09; Jek…...

【uniapp】proxy 代理切换至线上测试地址调试接口

本地测试地址形如&#xff1a;http://192.168.124.x:xxxx 线上测试地址形如&#xff1a;https://xxxx.xxxx.com 使用线上地址之后需要修改配置项 secure 为 true const constant require(./src/utils/constant) module.exports {devServer: {proxy: {/api: {target: constan…...

对比Vue2和Vue3的自定义指令

一、自定义指令简介 自定义指令是Vue提供的能力,用于注册自定义的指令,从而实现一些自定义的DOM操作。 二、Vue2中自定义指令 在Vue2中,自定义指令通过全局方法Vue.directive()进行注册: // 注册全局指令v-focus Vue.directive(focus, {inserted: function(el) {el.focus()…...

Python:实现日历到excel文档

背景 日历是一种常见的工具,用于记录事件和显示日期。在编程中,可以使用Python编码来制作日历。 Python提供了一些内置的模块和函数,使得制作日历变得更加简单。 在本文,我们将探讨如何使用Python制作日历,并将日历输出到excel文档中。 效果展示 实现 在代码中会用到cale…...

C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠

在C编程中&#xff0c;异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C中的异常处理和错误处理机制。 什么是异常处理&#xff1f; 异常处理是指在程序执行过程中发生异常或错误时&#xff0c;程序能够捕获并处理这些异常…...

第1章 Java、IDEA环境部署与配置

JavaEE简介与IDE环境部署 课程目录 JavaEE简介JDK环境部署IntelliJ IDEA环境部署 JavaEE简介 1. JavaEE是什么&#xff1f; Java EE&#xff08;Java Platform&#xff0c;Enterprise Edition&#xff09;是sun公司&#xff08;2009年4月20日甲骨文将其收购&#xff09;推…...

如何进行二进制文件的读写操作?

在C语言中&#xff0c;进行二进制文件的读写操作是非常常见的任务&#xff0c;尤其在处理文件、图像、音频和视频等二进制数据时。本文将详细介绍如何进行二进制文件的读写操作&#xff0c;包括如何打开文件、读取文件、写入文件以及关闭文件。我们将使用标准C库中的函数来执行…...

python实现PDF表格与文本分别导出EXCEL

现需将pdf 转换至Excel &#xff0c; 目前实现方式&#xff1a;将PDF的TABLE部分与 非 TABLE部分分别导出至Excel两个sheet中 1&#xff09;、识别PDF中的表格块 2&#xff09;、将PDF转换为Word格式 3&#xff09;、提取Word中非表格的文本数据 4&#xff09;、对文本与表格重…...

Java开发-WebSocket

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并实现 双向数据传输。 使用 导入maven坐标 <dependency><groupId>org.springframework.bo…...

SpringDoc API文档工具集成SpringBoot - Swagger3

1、引言 之前在Spring Boot项目中一直使用的是SpringFox提供的Swagger库&#xff0c;发现已经超过3年没出新版本了&#xff01;SpringDoc是一款可以结合Spring Boot使用的API文档生成工具&#xff0c;基于OpenAPI 3&#xff0c;是一款更好用的Swagger库&#xff01;值得一提的是…...

Java将djvu文件转成pdf

需求来源 迫于有部分资源是djvu格式的文件&#xff0c;需要预览这部分文件&#xff0c;web端无法直接预览djvu&#xff0c;所以需要将djvu转成pdf。 转换方法 简单来说就是先把djvu文件转换成tiff文件&#xff0c;再将tiff文件转换成pdf文件。 Ubuntu服务器 如果服务器是U…...

【机器学习合集】激活函数合集 ->(个人学习记录笔记)

文章目录 综述1. S激活函数(sigmoid&Tanh)2. ReLU激活函数3. ReLU激活函数的改进4. 近似ReLU激活函数5. Maxout激活函数6. 自动搜索的激活函数Swish 综述 这些都是神经网络中常用的激活函数&#xff0c;它们在非线性变换方面有不同的特点。以下是这些激活函数的主要区别&am…...

【从0到1设计一个网关】什么是网关?以及为什么需要自研网关?

文章目录 什么是网关&#xff1f;网关类型网关的优缺点目前的网关解决方案有哪些&#xff1f;为什么要自研Gateway网关&#xff1f;自研网关需要注意什么&#xff1f; 注&#xff1a; 这篇文章作为我的网关的第一篇文章&#xff0c;并不涉及任何代码&#xff0c;只是提及了网关…...

Tp框架如何使用事务和锁,还有查询缓存

1.事务 在ThinkPHP框架中&#xff0c;可以使用think\db\Transaction类来实现事务。 use think\Db; use think\db\Transaction;// 开始事务 Db::startTrans();try {// 执行数据库操作Db::table(user)->where(id, 1)->update([name > John]);// 提交事务Db::commit(); }…...

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行

Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters2. 解决参考 1. 报错 java.lang.IllegalStateException: Body parameter cannot be used with form parameters …...

【产品经理】APP备案(阿里云)

工信部《关于开展移动互联网应用程序备案工作的通知》 工业和信息化部印发了《关于开展移动互联网应用程序备案工作的通知》&#xff0c;“在中华人民共和国境内从事互联网信息服务的App主办者&#xff0c;应当依照相关法律法规等规定履行备案手续&#xff0c;未履行备案手续的…...

Overmind VS Redux

Overmind Overmind 是一个状态管理库&#xff0c;它可以帮助你管理应用程序的状态和副作用。下面是一个使用 Overmind 的简单示例&#xff1a; 首先&#xff0c;我们需要安装 Overmind 和它的 React 绑定&#xff1a; npm install overmind overmind-react然后&#xff0c;我…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...