当前位置: 首页 > 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/

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

相关文章:

  • buuctf_练[羊城杯2020]easyphp
  • 【Linux】安装配置虚拟机及虚拟机操作系统的安装
  • hugo-stack for github
  • 【uniapp】proxy 代理切换至线上测试地址调试接口
  • 对比Vue2和Vue3的自定义指令
  • Python:实现日历到excel文档
  • C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠
  • 第1章 Java、IDEA环境部署与配置
  • 如何进行二进制文件的读写操作?
  • python实现PDF表格与文本分别导出EXCEL
  • Java开发-WebSocket
  • SpringDoc API文档工具集成SpringBoot - Swagger3
  • Java将djvu文件转成pdf
  • 【机器学习合集】激活函数合集 ->(个人学习记录笔记)
  • 【从0到1设计一个网关】什么是网关?以及为什么需要自研网关?
  • Tp框架如何使用事务和锁,还有查询缓存
  • Java IDEA feign调用上传文件MultipartFile以及实体对象亲测可行
  • 【产品经理】APP备案(阿里云)
  • Overmind VS Redux
  • 0基础学习PyFlink——流批模式在主键上的对比
  • Java学习笔记(五)——数组、排序和查找
  • python输出与数据类型
  • React-Redux总结含购物车案例
  • 攻克组合优化问题!美国DARPA选中全栈量子经典计算公司Rigetti
  • Kafka - 深入了解Kafka基础架构:Kafka的基本概念
  • [Docker]二.Docker 镜像,仓库,容器介绍以及详解
  • 软考高级系统架构设计师系列之:案例分析典型试题一
  • 2023年5个美国代理IP推荐,最佳代理花落谁家?
  • github.com/holiman/uint256 源码阅读
  • 排序-表排序