You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
431 lines
15 KiB
431 lines
15 KiB
2 months ago
|
|
||
|
import GameReport from "../../FrameWork/Report/ZyZyReport";
|
||
|
import AppPlatform from "../../FrameWork/Util/AppPlatform";
|
||
|
import Common5 from "../../Platform/th/Common5";
|
||
|
import WXAPI from "../../Platform/weixin/WXAPI";
|
||
|
import UserManager from "../Manager/UserManager";
|
||
|
import GameBase from "../SCommon/GameBase";
|
||
|
|
||
|
const {ccclass, property} = cc._decorator;
|
||
|
|
||
|
enum TouchNodeType{
|
||
|
SaiChe,
|
||
|
HongLvDeng
|
||
|
}
|
||
|
|
||
|
let XinNianHongBaoConfig = [
|
||
|
{hongBaoNum:8,awardNum:880000},
|
||
|
{hongBaoNum:88,awardNum:88000000},
|
||
|
{hongBaoNum:188,awardNum:1880000000}
|
||
|
]
|
||
|
@ccclass
|
||
|
export default class SaiChe extends GameBase {
|
||
|
@property(cc.Node)
|
||
|
gameBg:cc.Node = null
|
||
|
@property(cc.Node)
|
||
|
boxNode:cc.Node = null
|
||
|
@property(cc.Node)
|
||
|
passNum:cc.Node = null
|
||
|
|
||
|
@property(cc.Node)
|
||
|
btn_restart:cc.Node = null
|
||
|
@property(cc.Node)
|
||
|
btn_ad:cc.Node = null
|
||
|
|
||
|
@property([cc.Node])
|
||
|
guanZi_zuoArr:cc.Node[] = []
|
||
|
@property([cc.Node])
|
||
|
guanZi_youArr:cc.Node[] = []
|
||
|
|
||
|
@property(cc.Node)
|
||
|
cheZiItem:cc.Node = null
|
||
|
|
||
|
|
||
|
@property(cc.Node)
|
||
|
baoXiangBtn:cc.Node = null
|
||
|
@property(cc.Node)
|
||
|
qiPaoBaoXiang:cc.Node = null
|
||
|
|
||
|
// @property([cc.SpriteFrame])
|
||
|
// cheZiSpFrameArr:cc.SpriteFrame[] = []
|
||
|
|
||
|
|
||
|
@property(cc.Node)
|
||
|
xingxingSpine:cc.Node = null
|
||
|
|
||
|
|
||
|
@property(cc.Node)
|
||
|
qipaoNode:cc.Node = null
|
||
|
|
||
|
@property(cc.Node)
|
||
|
selectNode:cc.Node = null
|
||
|
|
||
|
@property(cc.Node)
|
||
|
penZiSpine:cc.Node = null
|
||
|
|
||
|
@property(cc.Node)
|
||
|
pengZhuangSpine:cc.Node = null
|
||
|
|
||
|
passTab = []//奖励的阶段通过数
|
||
|
cheZiArr = []
|
||
|
guanZiSpeedArr = [250,200,230]//管子移动速度
|
||
|
guanZiIsMoveToRigthArr = [true,true,true]
|
||
|
cheZiMoveSpeed:number = 1600//车子移动速度
|
||
|
isStopAll:boolean = true//是否暂停所有运动物体
|
||
|
isStopDiCi:boolean = false//是否暂停地刺(红绿灯控制)
|
||
|
isNowHongDeng:boolean = false
|
||
|
// perCarMoney:number = 50
|
||
|
targetSum:number = 0
|
||
|
targetMaxNum:number = 0
|
||
|
targetAward:number = 0
|
||
|
passCarNum:number = 0//已通过车的数量
|
||
|
bigAward:number = 5000000
|
||
|
perHongLvDengCost:number = 20000
|
||
|
// freeAdNum:number = 2//看广告次数
|
||
|
_dt:number = 0
|
||
|
awardNum:number = 0
|
||
|
|
||
|
fixMoney = 8000000000
|
||
|
Proportion = 0.0005
|
||
|
rewardBili= [0.03, 0.08, 0.13, 0.2, 0.56]
|
||
|
rewardMoney = []
|
||
|
jieduanIndex = 0
|
||
|
|
||
|
onDestroy(){
|
||
|
// AppPlatform.stopRecord_custom()
|
||
|
super.onDestroy()
|
||
|
}
|
||
|
|
||
|
onLoad () {
|
||
|
super.onLoad()
|
||
|
// this.passTab = [10,50,100,200,500]
|
||
|
// this.targetSum = this.passTab[4]
|
||
|
// this.targetMaxNum = this.passTab[this.jieduanIndex]
|
||
|
this.initHongBaoNode()
|
||
|
// let freeNum = 3
|
||
|
// if(freeNum > 0){
|
||
|
// this.btn_restart.active = true
|
||
|
// this.btn_ad.active = false
|
||
|
// this.btn_restart.getChildByName("leftNums").getComponent(cc.Label).string = `开 始`
|
||
|
// }else{
|
||
|
// this.btn_restart.active = false
|
||
|
// this.btn_ad.active = true
|
||
|
// this.btn_ad.getChildByName("freeNums").getComponent(cc.Label).string = `获取次数`
|
||
|
// }
|
||
|
this.setGmClbx()
|
||
|
// this.openTouchEvent(this.gameBg,TouchNodeType.SaiChe)
|
||
|
// this.openTouchEvent(this.hongLvDeng,TouchNodeType.HongLvDeng)
|
||
|
// this.initAllGuanZi()
|
||
|
for(let i = 0; i<this.rewardBili.length; i++){
|
||
|
let bili = this.rewardBili[i]
|
||
|
let earnMoney = 1000
|
||
|
let allMoney = (this.fixMoney+earnMoney*Common5.earnMoneySecond)*this.Proportion
|
||
|
let jieduanMoney = Math.floor(allMoney*bili)
|
||
|
this.rewardMoney.push(jieduanMoney)
|
||
|
}
|
||
|
|
||
|
console.log(this.rewardMoney, 'this.rewardMoney++++')
|
||
|
|
||
|
}
|
||
|
|
||
|
start () {
|
||
|
Common5.playMusic("CommonRes/sound/电玩城");
|
||
|
this.refreshQipao()
|
||
|
}
|
||
|
|
||
|
refreshQipao(){
|
||
|
let rewardMoney = this.rewardMoney[this.jieduanIndex]
|
||
|
let qian = this.qipaoNode.getChildByName('qian').getComponent(cc.Label)
|
||
|
qian.string = Common5.getNumberChangeHanzi(rewardMoney)+''
|
||
|
}
|
||
|
|
||
|
update (dt) {
|
||
|
if(this.isStopAll){
|
||
|
return
|
||
|
}
|
||
|
if(dt > 0.5){
|
||
|
dt = 1/60
|
||
|
}
|
||
|
if(!this.isStopDiCi){
|
||
|
//地刺运动
|
||
|
for(var i=0;i<3;i++){
|
||
|
// Common5.checkIntersectsBox()
|
||
|
if(this.guanZiIsMoveToRigthArr[i]){
|
||
|
this.guanZi_zuoArr[i].x += dt*this.guanZiSpeedArr[i]
|
||
|
this.guanZi_youArr[i].x -= dt*this.guanZiSpeedArr[i]
|
||
|
if(this.guanZi_zuoArr[i].x >= 0){
|
||
|
this.guanZiSpeedArr[i] = Math.floor(Math.random()*400 + 100)
|
||
|
this.guanZiIsMoveToRigthArr[i] = false
|
||
|
}
|
||
|
}else{
|
||
|
this.guanZi_zuoArr[i].x -= dt*this.guanZiSpeedArr[i]
|
||
|
this.guanZi_youArr[i].x += dt*this.guanZiSpeedArr[i]
|
||
|
if(this.guanZi_zuoArr[i].x <= -350){
|
||
|
this.guanZiSpeedArr[i] = Math.floor(Math.random()*400 + 100)
|
||
|
this.guanZiIsMoveToRigthArr[i] = true
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
//车子运动
|
||
|
for(var i=0;i<this.cheZiArr.length;i++){
|
||
|
this.cheZiArr[i].y -= dt*this.cheZiMoveSpeed
|
||
|
|
||
|
//碰撞检测
|
||
|
for(var j=0;j<3;j++){
|
||
|
if(Common5.checkIntersectsBox(this.cheZiArr[i].getChildByName("langArea"),this.guanZi_zuoArr[j].getChildByName("kongLongArea"))){
|
||
|
Common5.playEffect("撞车")
|
||
|
console.log("碰撞了=====")
|
||
|
this.isStopAll = true
|
||
|
this.isNowHongDeng = false
|
||
|
|
||
|
this.closeTouchEvent(this.gameBg)
|
||
|
this.scheduleOnce(()=>{
|
||
|
this.handGameOver()
|
||
|
},0.5)
|
||
|
}
|
||
|
}
|
||
|
if(this.cheZiArr[i].y <= -465){
|
||
|
Common5.playEffectCustom('SaiChe','sound/接到红包')
|
||
|
this.penZiSpine.getComponent(sp.Skeleton).setAnimation(0,'2',false)
|
||
|
this.pengZhuangSpine.active = true
|
||
|
this.pengZhuangSpine.getComponent(sp.Skeleton).setAnimation(0,'pengzhuang',false)
|
||
|
this.cheZiArr[i].removeFromParent()
|
||
|
this.cheZiArr.splice(i,1)
|
||
|
this.passCarNum += 1
|
||
|
let awardNum = 0
|
||
|
for(var j=this.passTab.length-1;j>= 0;j--){
|
||
|
if(this.passCarNum >= this.passTab[j]){
|
||
|
awardNum = j+1
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
if(this.awardNum != awardNum){
|
||
|
this.awardNum = awardNum
|
||
|
//this.flyXingXingSpine()
|
||
|
//this.flyMoney()
|
||
|
}
|
||
|
this.baoXiangBtn.getChildByName("awardNum").getComponent(cc.Label).string = `x${awardNum}`
|
||
|
this.passNum.getComponent(cc.Label).string = `${this.passCarNum}/${this.targetSum}`
|
||
|
if(this.passCarNum>=this.targetSum){
|
||
|
this.isStopAll = true
|
||
|
this.jieduanIndex = 0
|
||
|
this.isNowHongDeng = false
|
||
|
|
||
|
this.closeTouchEvent(this.gameBg)
|
||
|
this.handGameOver()
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
flyMoney(){
|
||
|
let rewardMoney = this.rewardMoney[this.jieduanIndex]
|
||
|
UserManager.addMoney(rewardMoney, this.qipaoNode)
|
||
|
this.jieduanIndex++
|
||
|
this.refreshQipao()
|
||
|
}
|
||
|
|
||
|
|
||
|
flyXingXingSpine(){
|
||
|
this.xingxingSpine.active = true
|
||
|
this.xingxingSpine.setPosition(this.qiPaoBaoXiang.getPosition())
|
||
|
let localPos = this.baoXiangBtn.getPosition()
|
||
|
cc.tween(this.xingxingSpine)
|
||
|
.to(1,{x:localPos.x,y:localPos.y})
|
||
|
.call(()=>{
|
||
|
this.xingxingSpine.active = false
|
||
|
})
|
||
|
.start()
|
||
|
}
|
||
|
initAllGuanZi(){
|
||
|
for(var i=0;i<3;i++){
|
||
|
this.guanZi_zuoArr[i].x = -350
|
||
|
this.guanZi_youArr[i].x = 350
|
||
|
}
|
||
|
}
|
||
|
initAllCheZi(){
|
||
|
for(var i=0;i<this.cheZiArr.length;i++){
|
||
|
this.cheZiArr[i].removeFromParent()
|
||
|
}
|
||
|
this.cheZiArr = []
|
||
|
}
|
||
|
openTouchEvent(node,touchType){
|
||
|
node.on(cc.Node.EventType.TOUCH_START,this.touchStartNode,this)
|
||
|
node.attr({touchType:touchType})
|
||
|
}
|
||
|
closeTouchEvent(node){
|
||
|
node.off(cc.Node.EventType.TOUCH_START,this.touchStartNode,this)
|
||
|
}
|
||
|
touchStartNode(event){
|
||
|
if(event.target.touchType == TouchNodeType.SaiChe){
|
||
|
let cheZi = cc.instantiate(this.cheZiItem)
|
||
|
cheZi.active = true
|
||
|
// let randomNum = Math.floor(Math.random()*5)
|
||
|
// cheZi.getComponent(cc.Sprite).spriteFrame = this.cheZiSpFrameArr[randomNum]
|
||
|
this.gameBg.addChild(cheZi)
|
||
|
this.cheZiArr.push(cheZi)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
onBtnRestartClick(){
|
||
|
|
||
|
this.setGmClbx()
|
||
|
this.passCarNum = 0
|
||
|
this.passNum.getComponent(cc.Label).string = `${this.passCarNum}/${this.targetSum}`
|
||
|
this.openTouchEvent(this.gameBg,TouchNodeType.SaiChe)
|
||
|
// this.openTouchEvent(this.hongLvDeng,TouchNodeType.HongLvDeng)
|
||
|
this.initAllGuanZi()
|
||
|
this.initAllCheZi()
|
||
|
|
||
|
this.isStopAll = false
|
||
|
this.boxNode.active = false
|
||
|
|
||
|
// AppPlatform.startRecord_custom()
|
||
|
// this.freeAdNum = 2
|
||
|
}
|
||
|
onBtnLingQuClick(){
|
||
|
UserManager.addMoney(this.targetAward)
|
||
|
this.boxNode.active = false
|
||
|
this.selectNode.active = true
|
||
|
}
|
||
|
fuhuoClickEvent(){
|
||
|
Common5.playEffect("sound/按键点击")
|
||
|
let tab = {
|
||
|
onClose: (finish)=>{
|
||
|
if (finish) {
|
||
|
Common5.ReportDY("inLevel", '红包活动-AD-复活继续');
|
||
|
this.reportKey(()=>{
|
||
|
GameReport.ADReport('红包活动复活继续',1)
|
||
|
})
|
||
|
//User.setSaiCheFreeNum(User.getSaiCheFreeNum() - 1)
|
||
|
|
||
|
// this.btn_restart.active = false
|
||
|
this.setGmClbx()
|
||
|
this.passNum.getComponent(cc.Label).string = `${this.passCarNum}/${this.targetSum}`
|
||
|
this.openTouchEvent(this.gameBg,TouchNodeType.SaiChe)
|
||
|
|
||
|
this.initAllGuanZi()
|
||
|
this.initAllCheZi()
|
||
|
this.isNowHongDeng = true
|
||
|
|
||
|
this.isStopAll = false
|
||
|
this.boxNode.active = false
|
||
|
|
||
|
// AppPlatform.startRecord_custom()
|
||
|
}
|
||
|
else{
|
||
|
this.reportKey(()=>{
|
||
|
GameReport.ADReport('红包活动复活继续',0)
|
||
|
})
|
||
|
Common5.showTips_custom("广告未观看完");
|
||
|
}
|
||
|
},onFailed:()=>{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
AppPlatform.playVideo_custom(tab)
|
||
|
}
|
||
|
|
||
|
onBtnADClick(){
|
||
|
Common5.playEffect("sound/按键点击")
|
||
|
let tab = {
|
||
|
onClose: (finish)=>{
|
||
|
if (finish) {
|
||
|
Common5.ReportDY("inLevel", '红包-AD-看视频');
|
||
|
// User.setSaiCheFreeNum(3)
|
||
|
this.isNowHongDeng = false
|
||
|
this.reportKey(()=>{
|
||
|
GameReport.ADReport('红包看视频',1)
|
||
|
})
|
||
|
// this.btn_restart.active = true
|
||
|
this.btn_ad.active = false
|
||
|
// this.btn_restart.getChildByName("leftNums").getComponent(cc.Label).string = `开始(3/3)`
|
||
|
// this.freeAdNum -= 1
|
||
|
// if(this.freeAdNum < 0){
|
||
|
// this.freeAdNum = 0
|
||
|
// }
|
||
|
// this.openTouchEvent(this.gameBg,TouchNodeType.SaiChe)
|
||
|
this.initAllGuanZi()
|
||
|
this.initAllCheZi()
|
||
|
// this.isStopAll = false
|
||
|
this.boxNode.active = false
|
||
|
}
|
||
|
else{
|
||
|
this.reportKey(()=>{
|
||
|
GameReport.ADReport('红包看视频',0)
|
||
|
})
|
||
|
Common5.showTips_custom("广告未观看完");
|
||
|
}
|
||
|
},onFailed:()=>{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
AppPlatform.playVideo_custom(tab)
|
||
|
}
|
||
|
|
||
|
handGameOver(){
|
||
|
|
||
|
this.boxNode.active = true
|
||
|
// AppPlatform.stopRecord_custom()
|
||
|
Common5.showInterstitialAd()
|
||
|
if(this.passCarNum >= this.targetSum){
|
||
|
Common5.playEffect("sound/成功")
|
||
|
this.boxNode.getChildByName("failBg").active = false
|
||
|
cc.tween(this.boxNode.getChildByName("successBg"))
|
||
|
.set({scale:0.5,active:true})
|
||
|
.to(0.2,{scale:1.1})
|
||
|
.to(0.15,{scale:1})
|
||
|
.start()
|
||
|
this.passCarNum = 0
|
||
|
|
||
|
this.boxNode.getChildByName("successBg").getChildByName('awardStr').getComponent(cc.Label).string = 'x'+this.targetAward
|
||
|
}else{
|
||
|
Common5.playEffect("sound/失败")
|
||
|
cc.tween(this.boxNode.getChildByName("failBg"))
|
||
|
.set({scale:0.5,active:true})
|
||
|
.to(0.2,{scale:1.1})
|
||
|
.to(0.15,{scale:1})
|
||
|
.start()
|
||
|
this.boxNode.getChildByName("successBg").active = false
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setGmClbx(){
|
||
|
|
||
|
}
|
||
|
|
||
|
shareBtnClickEvent(){
|
||
|
Common5.playEffect("sound/按键点击")
|
||
|
|
||
|
// WXAPI.share_custom((finish)=>{
|
||
|
// }, '','');
|
||
|
|
||
|
// AppPlatform.shareRecord_custom(() => {
|
||
|
// // this.lingquClickEvent()
|
||
|
// }, () => {
|
||
|
// //Common5.showTips_custom("录屏分享失败,请稍后再试!");
|
||
|
// })
|
||
|
|
||
|
}
|
||
|
initHongBaoNode(){
|
||
|
this.selectNode.getChildByName('btn1').getChildByName('str').getComponent(cc.Label).string = `接到${XinNianHongBaoConfig[0].hongBaoNum}个红包`
|
||
|
this.selectNode.getChildByName('btn2').getChildByName('str').getComponent(cc.Label).string = `接到${XinNianHongBaoConfig[1].hongBaoNum}个红包`
|
||
|
this.selectNode.getChildByName('btn3').getChildByName('str').getComponent(cc.Label).string = `接到${XinNianHongBaoConfig[2].hongBaoNum}个红包`
|
||
|
|
||
|
this.selectNode.getChildByName('awardStr1').getComponent(cc.Label).string = `x${Common5.getNumberChangeHanzi(XinNianHongBaoConfig[0].awardNum,'1',1)}`
|
||
|
this.selectNode.getChildByName('awardStr2').getComponent(cc.Label).string = `x${Common5.getNumberChangeHanzi(XinNianHongBaoConfig[1].awardNum,'1',1)}`
|
||
|
this.selectNode.getChildByName('awardStr3').getComponent(cc.Label).string = `x${Common5.getNumberChangeHanzi(XinNianHongBaoConfig[2].awardNum,'1',1)}`
|
||
|
}
|
||
|
selectTypeClick(event,customData){
|
||
|
// AppPlatform.startRecord_custom()
|
||
|
this.targetSum = XinNianHongBaoConfig[customData].hongBaoNum
|
||
|
this.targetAward = XinNianHongBaoConfig[customData].awardNum
|
||
|
this.selectNode.active = false
|
||
|
this.onBtnRestartClick()
|
||
|
}
|
||
|
|
||
|
}
|