games/FullFire/assets/scripts/ui/MainViewCtr.ts

243 lines
8.1 KiB
TypeScript

import Common from "../common/Common";
import ViewBase from "./ViewBase";
import UIManager from "../manager/UIManager";
import Define from "../common/Define";
import GameManager from "../manager/GameManager";
import UserInfo from "../UserInfo";
import WXHelper from "../common/WXHelper";
import ParticleEffectManager from "../manager/ParticleEffectManager";
import HttpManager from "../manager/HttpManager";
import MiniGameInfo from "../MiniGameInfo";
import FrameAnimation from "../common/FrameAnimation";
// Learn TypeScript:
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html
const {ccclass, property} = cc._decorator;
@ccclass
export default class MainView extends ViewBase {
@property(cc.Label)
textGold: cc.Label = null;
@property(cc.Node)
btn_ranking: cc.Node = null;
@property(cc.Node)
btn_share: cc.Node = null;
@property(cc.Node)
btn_bg: cc.Node = null;
@property(cc.Node)
btn_sound: cc.Node = null;
@property(cc.Node)
btn_cannon: cc.Node = null;
@property(cc.Node)
btn_scene: cc.Node = null;
@property(cc.Node)
btn_shaman: cc.Node = null;
@property(cc.Node)
btn_brate: cc.Node = null;
@property(cc.Node)
nodeCenterGuide: cc.Node = null;
@property(cc.Node)
nodeCenterTitle: cc.Node = null;
@property(cc.Node)
nodeCannonTip: cc.Node = null;
@property(cc.Node)
nodeGoldTextParent: cc.Node = null;
@property(cc.Label)
textGuide: cc.Label = null;
@property(cc.Node)
node_title1: cc.Node = null;
@property(cc.Node)
node_title2: cc.Node = null;
//btns -------- 结束
@property(cc.Node)
nodeHand:cc.Node = null; // -123 130
private nodeGoldTextParentInitPos:cc.Vec2 = null;
//刷新UI
refreshView(isFristRefresh:boolean = false){
this.refreshGoldCound();
//清空上次的动作
this.nodeHand.stopAllActions();
this.textGuide.node.stopAllActions();
this.textGuide.node.rotation = 0;
this.nodeHand.position = new cc.Vec2(-123,this.nodeHand.position.y);
this.node_title1.active = false;
this.node_title2.active = false;
if(Define.gameId == "001"){
this.node_title1.active = true;
}else if(Define.gameId == "002"){
this.node_title2.active = true;
}
this.nodeCenterGuide.stopAllActions()
this.nodeCenterGuide.position = new cc.Vec2(-640,0)
this.nodeCenterGuide.runAction(cc.sequence(cc.moveTo(0.8,new cc.Vec2(0,0)).easing(cc.easeBackOut()),
cc.callFunc(function(){
this.handMove();
}.bind(this))
));
if(Common.isShowGoldFlyEffect){
ParticleEffectManager.getInstance().showParticleEffect(4,cc.Vec2.ZERO,2,null,this.nodeCenterTitle);
Common.isShowGoldFlyEffect = false;
}
this.changeBrateState();
this.executeEvent()
}
//点击点击事件
addEvent(){
Common.addClickEvent(this.btn_ranking,this.onClick.bind(this));
Common.addClickEvent(this.btn_share,this.onClick.bind(this));
Common.addClickEvent(this.btn_bg,this.onClick.bind(this),false);
Common.addClickEvent(this.btn_sound,this.onClick.bind(this));
Common.addClickEvent(this.btn_cannon,this.onClick.bind(this));
Common.addClickEvent(this.btn_brate,this.onClick.bind(this));
Common.addClickEvent(this.btn_shaman,this.onClick.bind(this));
Common.addClickEvent(this.btn_scene,this.onClick.bind(this));
this.nodeGoldTextParentInitPos = this.nodeGoldTextParent.position;
this.chnageSoundState();
let frame:FrameAnimation = this.btn_shaman.children[0].getComponent<FrameAnimation>(FrameAnimation)
frame.init();
frame.Play(8000)
Common.actionLeftRightRotate(this.btn_shaman.children[0],0.125,2,10)
Common.actionLeftRightRotate(this.btn_ranking,0.15,18,3)
Common.actionLeftRightRotate(this.btn_share,0.2,15,5)
}
handMove(){
this.nodeHand.stopAllActions();
let actionRight = cc.moveTo(1.5,new cc.Vec2(130,this.nodeHand.position.y));
let actionLeft = cc.moveTo(1.5,new cc.Vec2(-123,this.nodeHand.position.y));
this.nodeHand.runAction(cc.repeatForever(cc.sequence(actionRight,actionLeft)));
Common.actionLeftRightRotate(this.textGuide.node);
}
onClick(tag:string){
if(tag == "btn_bg"){
if(Common.pauseServer){
return
}
UIManager.getInstance().hideView(Define.viewMain);
UIManager.getInstance().hideView(Define.viewUpgrade);
UIManager.getInstance().showView(Define.viewBattle,function(){
Common.isPlaying = true;
GameManager.instance.restartGame();
});
}else if(tag == "btn_sound"){
this.chnageSoundState(true)
UserInfo.clearAllDatas();
}else if(tag == "btn_ranking"){
UIManager.getInstance().showView(Define.viewRanking);
UIManager.getInstance().hideView(Define.viewMain)
UIManager.getInstance().hideView(Define.viewUpgrade)
}else if(tag == "btn_cannon"){
UIManager.getInstance().showView(Define.viewSelectCannon);
UIManager.getInstance().hideView(Define.viewMain)
UIManager.getInstance().hideView(Define.viewUpgrade)
}
else if(tag == "btn_shaman"){
WXHelper.jumpToMiniProgram("wx841bc8aa850bd773");
}else if(tag == "btn_scene"){
UIManager.getInstance().showView(Define.viewSelectScene);
UIManager.getInstance().hideView(Define.viewMain)
UIManager.getInstance().hideView(Define.viewUpgrade)
}
}
changeBrateState(isChange:boolean = false){
if(isChange){
if(UserInfo.brate == 1){
UserInfo.brate = 0
}else{
UserInfo.brate = 1
}
UserInfo.saveBrateSate()
}
console.log("UserInfo.brate ========= " +UserInfo.brate);
this.btn_brate.children[0].active = false
this.btn_brate.children[1].active = false
this.btn_brate.children[UserInfo.brate].active = true
}
chnageSoundState(isChange:boolean = false){
if(isChange){
Common.isOpenSound = !Common.isOpenSound
}
this.btn_sound.children[0].active = !Common.isOpenSound
this.btn_sound.children[1].active = Common.isOpenSound
}
//刷新金币数量
refreshGoldCound(){;
this.textGold.string = Common.getShowNumber(UserInfo.curGold);
let x = 60*this.textGold.string.length*-1-36;
this.textGold.node.children[0].position = new cc.Vec2(x,-24);
x = this.nodeGoldTextParentInitPos.x + (this.textGold.string.length - 1)*24;
this.nodeGoldTextParent.position = new cc.Vec2(x,this.nodeGoldTextParentInitPos.y);
}
refreshGoldInfo(){
this.refreshGoldCound();
}
executeEvent(eventTag:string = "defualt"){
if(UserInfo.isHaveNewCannon()){
this.nodeCannonTip.active = true;
this.nodeCannonTip.stopAllActions();
Common.actionLeftRightRotate(this.nodeCannonTip,0.15,18,3)
}else{
this.nodeCannonTip.active = false;
}
if(UserInfo.isHaveNewScene()){
this.btn_scene.children[0].active = true;
this.btn_scene.children[0].stopAllActions();
Common.actionLeftRightRotate(this.btn_scene.children[0],0.15,18,3)
}else{
this.btn_scene.children[0].active = false;
}
}
}