【cocos creator】体力系统2.0

体力系统2.0

在这里插入图片描述

//2.0
// Learn cc.Class:
//  - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var curMod = cc.Class({extends: cc.Component,properties: {// foo: {//     // ATTRIBUTES://     default: null,        // The default value will be used only when the component attaching//                           // to a node for the first time//     type: cc.SpriteFrame, // optional, default is typeof default//     serializable: true,   // optional, default is true// },// bar: {//     get () {//         return this._bar;//     },//     set (value) {//         this._bar = value;//     }// },TiliTime: cc.Label,//体力回复剩余时间energyLabel: cc.Label,//体力显示MaxEnergy: 30,//最大体力值EnergyReturnTime: 600,//体力回复时间},statics: {_instance: null,Instance() {return curMod._instance;},//体力GetLeaveEnergy() {var key = 'Leave_Energy2';var str = cc.sys.localStorage.getItem(key);if (str) {return parseInt(str);}return 10;},SetLeaveEnergy(i) {var key = 'Leave_Energy2';var value = i + "";cc.sys.localStorage.setItem(key, value);},//体力获取时间GetLeaveEnergyTime() {var key = 'Leave_EnergyTime2';var str = cc.sys.localStorage.getItem(key);if (str) {return parseInt(str);}return new Date().getTime();},SetLeaveEnergyTime(i) {var key = 'Leave_EnergyTime2';var value = new Date().getTime();cc.sys.localStorage.setItem(key, value);},},// LIFE-CYCLE CALLBACKS:onLoad() {curMod._instance = this;//this.timer = 0;//this.energy = this.MaxEnergy;//curMod.SetLeaveEnergy(this.MaxEnergy);//curMod.SetLeaveEnergyTime();this.setTili();},start() {this.timmer = function () {//cc.log(this.timeron)if (this.timeron) {this.setEnergyTime();}};this.schedule(this.timmer, 1);//测试/*this.schedule(() => {this.setEnergy(-5)}, 10);*/},onEnergyDownBtn() {this.setEnergy(-1);},//设置体力setEnergy(i) {if (this.energy <= 0 && i < 0) {return;}//cc.log(this.energy, i)var energy = this.energy + i;curMod.SetLeaveEnergy(energy);this.energy = energy;if (this.energyLabel) {this.energyLabel.string = this.energy;}//cc.log(this.energy, this.MaxEnergy)if (i < 0 && this.energy <= this.MaxEnergy) {//this.ReStartTimer();}},//体力系统setTili() {var LeaveEnergy = curMod.GetLeaveEnergy();this.energy = LeaveEnergy;var lastTime = new Date(curMod.GetLeaveEnergyTime()).getTime();let nowTime = new Date().getTime();var tiliCount = parseInt((nowTime - lastTime) / 1000 / this.EnergyReturnTime);this.EnergyTime = this.EnergyReturnTime - parseInt((nowTime - lastTime) / 1000 % this.EnergyReturnTime);this.setEnergyTime();this.timeron = true;if (tiliCount < 0 || LeaveEnergy < 0) {tiliCount = 0;curMod.SetLeaveEnergyTime();curMod.SetLeaveEnergy(0);this.energy = 0;}if (LeaveEnergy > this.MaxEnergy) {this.timeron = false;this.TiliTime.string = "已满";/*if (User.userInfo.needReset) {this.energy = this.MaxEnergy;curMod.SetLeaveEnergy(this.MaxEnergy);curMod.SetLeaveEnergyTime();}*/}else if ((tiliCount + LeaveEnergy) >= this.MaxEnergy) {this.timeron = false;this.TiliTime.string = "已满";this.energy = this.MaxEnergy;curMod.SetLeaveEnergyTime();curMod.SetLeaveEnergy(this.energy);}else if (tiliCount > 0) {this.TiliTime.node.active = true;this.energy = tiliCount + LeaveEnergy;// curMod.SetLeaveEnergy(this.energy);}if (this.energyLabel) {this.energyLabel.string = this.energy;}},ReStartTimer() {this.EnergyTime = this.EnergyReturnTime;curMod.SetLeaveEnergy(this.energy);curMod.SetLeaveEnergyTime();this.timeron = true;},setEnergyTime() {//cc.log(this.energy);if (this.energy < 0) {this.energy = 0;this.energyLabel.string = this.energy;}if (this.EnergyTime > 0) {this.EnergyTime--;this.TiliTime.node.active = true;if (this.TiliTime) {if (parseInt(this.EnergyTime % 60) < 10) {this.TiliTime.string = parseInt(this.EnergyTime / 60) + ":0" + parseInt(this.EnergyTime % 60);}else {this.TiliTime.string = parseInt(this.EnergyTime / 60) + ":" + parseInt(this.EnergyTime % 60);}}}else {if (this.energy < this.MaxEnergy) {this.energy++;this.ReStartTimer();}else {this.timeron = false;this.TiliTime.string = "已满";}}if (this.energyLabel) {this.energyLabel.string = this.energy;}if (this.energy >= this.MaxEnergy) {this.timeron = false;this.TiliTime.string = "已满";}},update(dt) {/*if (this.timer >= 60) {if (this.timeron) {this.setEnergyTime();}this.timer = 0;}else {this.timer++;}*/},
});

体力系统1.0

在这里插入图片描述

//1.0
// Learn cc.Class:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/class.html
//  - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/class.html
// Learn Attribute:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://docs.cocos2d-x.org/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] https://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.htmlvar curMod = cc.Class({extends: cc.Component,properties: {// foo: {//     // ATTRIBUTES://     default: null,        // The default value will be used only when the component attaching//                           // to a node for the first time//     type: cc.SpriteFrame, // optional, default is typeof default//     serializable: true,   // optional, default is true// },// bar: {//     get () {//         return this._bar;//     },//     set (value) {//         this._bar = value;//     }// },TiliTime: cc.Label,//体力回复剩余时间energyLabel: cc.Label,//体力显示MaxEnergy: 30,//最大体力值EnergyReturnTime: 600,//体力回复时间},statics: {_instance: null,Instance() {return curMod._instance;},//体力GetLeaveEnergy() {var key = 'Leave_EnergyNumber2';var str = cc.sys.localStorage.getItem(key);if (str) {return parseInt(str);}return 10;},SetLeaveEnergy(i) {var key = 'Leave_EnergyNumber2';var value = i + "";cc.sys.localStorage.setItem(key, value);},//体力获取时间GetLeaveEnergyTime() {var key = 'Leave_EnergyTimes1';var str = cc.sys.localStorage.getItem(key);if (str) {return parseInt(str);}return 600;},SetLeaveEnergyTime(i) {var key = 'Leave_EnergyTimes1';var value = i + "";cc.sys.localStorage.setItem(key, value);},CheckLoginDate(lastTime) {var lastTime = new Date(lastTime);var now = new Date();if (now.getFullYear() !== lastTime.getFullYear() ||now.getMonth() !== lastTime.getMonth() ||now.getDate() !== lastTime.getDate()) {this.needReset = true;return true;}cc.log("不需要重置", lastTime.toDateString(), now.toDateString())return false;},},// LIFE-CYCLE CALLBACKS:onLoad() {curMod._instance = this;this.timer = 0;},start() {},onEnergyDownBtn() {this.setEnergy(-1);},setEnergy(i) {this.energy += i;curMod.SetLeaveEnergy(this.energy);if (this.energyLabel) {this.energyLabel.string = this.energy + "/" + this.MaxEnergy;}},//体力系统setTili() {this.energy = curMod.GetLeaveEnergy();//cc.log(this.energy);var LeaveEnergy = curMod.GetLeaveEnergy();var lastTime = parseInt(cc.sys.localStorage.getItem('LastGetTime1'));if (!lastTime) {lastTime = 0;}let nowTime = new Date().getTime();//var tiliCount = parseInt((nowTime - lastTime) / 1000 / this.EnergyReturnTime);var tiliCount = parseInt((nowTime - lastTime) / 1000 / this.EnergyReturnTime);//cc.log(nowTime, lastTime);var EnergyTime = this.EnergyReturnTime - parseInt((nowTime - lastTime) / 1000 % this.EnergyReturnTime)//cc.log(EnergyTime)curMod.SetLeaveEnergyTime(EnergyTime);this.TiliTime.node.active = true;if (this.TiliTime) {if (parseInt(EnergyTime % 60) < 10) {this.TiliTime.string = parseInt(EnergyTime / 60) + ":0" + parseInt(EnergyTime % 60);}else {this.TiliTime.string = parseInt(EnergyTime / 60) + ":" + parseInt(EnergyTime % 60);}}//cc.log(EnergyTime, this.EnergyReturnTime)//cc.log("tiliCount***  ", (parseInt(nowTime - lastTime) / 1000), tiliCount, EnergyTime);if (tiliCount < 0) {tiliCount = 0;}if (this.energy > this.MaxEnergy) {this.TiliTime.node.active = false;let lastDate = curMod.GetLeaveEnergyTime();if (curMod.CheckLoginDate(lastDate)) {this.energy = this.MaxEnergy;curMod.SetLeaveEnergy(this.MaxEnergy);}}else if ((tiliCount + LeaveEnergy) >= this.MaxEnergy) {this.TiliTime.node.active = false;this.energy = this.MaxEnergy;cc.sys.localStorage.setItem('LastGetTime1', nowTime);curMod.SetLeaveEnergy(this.energy);}else if (tiliCount > 0) {this.TiliTime.node.active = true;this.energy = tiliCount + LeaveEnergy;cc.sys.localStorage.setItem('LastGetTime1', nowTime);curMod.SetLeaveEnergy(this.energy);}if (this.energyLabel) {this.energyLabel.string = this.energy + "/" + this.MaxEnergy;}},update(dt) {if (this.timer >= 50) {this.setTili();this.timer = 0;}else {this.timer++;}},
});


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部