| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- import DataMgr from "../mgr/DataMgr";
- import PlayerConst, { DATA_STORAGE_KEY } from "../data/PlayerConst";
- import HttpMgr from "../mgr/HttpMgr";
- import EffectMgr from "../mgr/EffectMgr";
- import GameMgr, { UI_NAME } from "../mgr/GameMgr";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class RedPacketUI extends cc.Component {
- @property(cc.Node)
- node_rectBg: cc.Node = null;
- @property(cc.Node)
- node_unopen: cc.Node = null;
- @property(cc.Node)
- node_top: cc.Node = null;
- @property(cc.Node)
- node_bottom: cc.Node = null;
- @property(cc.Label)
- label_redPacketName_open: cc.Label = null;
- @property(cc.Node)
- node_openBtn: cc.Node = null;
- @property(cc.Animation)
- ani_openBtn: cc.Animation = null;
- @property(cc.Node)
- node_closeBtn: cc.Node = null;
- @property(cc.Node)
- node_open: cc.Node = null;
- @property(cc.Node)
- node_cashInfo: cc.Node = null;
- @property(cc.Label)
- label_redPacketName_unopen: cc.Label = null;
- @property(cc.Label)
- label_redPacketTip: cc.Label = null;
- @property(cc.Label)
- label_cashNum: cc.Label = null;
- @property(cc.Node)
- node_cashOutBtn: cc.Node = null;
- @property(cc.Node)
- node_getCashBtn: cc.Node = null;
- @property(cc.Node)
- node_doubleCashBtn: cc.Node = null;
- public top_oirgin_y: number;
- public top_scale_size: number;
- public bottom_origin_y: number;
- public bottom_scale_size: number;
- public cashNum: number = 0.1;
- public getCallBacK: Function = null;
- // LIFE-CYCLE CALLBACKS:
- onLoad() {
- this.top_oirgin_y = this.node_top.y;
- this.bottom_origin_y = this.node_bottom.y;
- this.top_scale_size = (cc.winSize.width + 20) / this.node_top.width;
- this.bottom_scale_size = cc.winSize.width / this.node_bottom.width;
- }
- start() {
- this.node_rectBg.setContentSize(cc.winSize.width, cc.winSize.height);
- this.initView();
- this.initEvent();
- }
- // update (dt) {}
- onEnable() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "进入过关红包界面");
- //播放红包来了音效
- // AudioMgr.Inst.playEffect(AUDIO_CLIP_NAME.redPacket_come);
- mk.audio.playEffect("ef_redPacket_come");
-
- mk.console.log("设置红包来了1!!!!!!!!!!!!!!!!!!!!!");
- this.node_closeBtn.active = false;
- let timeout = setTimeout(() => {
- this.node_closeBtn.active = true;
- clearTimeout(timeout);
- },800);
- }
- onDisable() {
- this.initView();
- }
- /**初始化
- * @param 红包名字
- * @param 红包现金数目
- * @param 回调
- * @param 提示
- */
- init(readPacketName: string, cashNum: number, getCallBack: Function = null, tip: string = null) {
- this.getCallBacK = getCallBack;
- this.cashNum = cashNum;
- this.label_redPacketName_open.string = readPacketName;
- this.label_redPacketName_unopen.string = readPacketName;
- this.label_cashNum.string = cashNum.toString();
- if (tip) {
- this.label_redPacketTip.string = tip.toString();
- this.label_redPacketTip.node.active = true;
- }
- else {
- this.label_redPacketTip.node.active = false;
- }
- }
- /**初始化视图 */
- initView() {
- this.node_open.active = false;
- this.node_unopen.active = true;
- this.node_top.y = this.top_oirgin_y;
- this.node_top.scaleX = this.node_top.scaleY = 1;
- this.node_bottom.y = this.bottom_origin_y;
- this.node_bottom.scaleX = this.node_bottom.scaleX = 1;
- this.node_openBtn.active = true;
- this.node_closeBtn.active = false;
- this.node_rectBg.opacity = 50;
- }
- /**初始化事件 */
- initEvent() {
- this.node_closeBtn.on(cc.Node.EventType.TOUCH_END, this.onClick, this);
- this.node_openBtn.on(cc.Node.EventType.TOUCH_END, this.onClick, this);
- this.node_getCashBtn.on(cc.Node.EventType.TOUCH_END, this.onClick, this);
- this.node_doubleCashBtn.on(cc.Node.EventType.TOUCH_END, this.onClick, this);
- this.node_cashOutBtn.on(cc.Node.EventType.TOUCH_END, this.onClick, this);
- }
- onClick(event: cc.Event.EventTouch) {
- switch (event.currentTarget) {
- case this.node_closeBtn:
- this.onClickClose();
- break;
- case this.node_openBtn:
- this.onClickOpenBtn();
- break;
- case this.node_getCashBtn:
- this.onClickGetCash();
- break;
- case this.node_doubleCashBtn:
- this.onClickDoubelCash();
- break;
- case this.node_cashOutBtn:
- this.onClickCashOutBtn();
- break;
- }
- }
- /**点击关闭 */
- onClickClose() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "点击关闭按钮");
- // this.node.active = false;
- mk.ui.closePanel("RedPacketUI");
- if (this.getCallBacK) {
- this.getCallBacK();
- }
- }
- /**点击领取双倍 */
- onClickOpenBtn() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "点击打开过关红包按钮");
- // AdMgr.Inst.watchAd(VIDEOTYPE.OpenRedPacket, (ifsuccess) => { this, this.watchCallBack(ifsuccess) });
- }
- /**观看回调 */
- watchCallBack(ifSuccess: boolean = false) {
- if (ifSuccess) {
- mk.console.log("观看成功")
- this.watchSuccess();
- }
- else {
- mk.console.log("观看失败")
- this.watchFailed();
- }
- }
- /**观看成功 */
- watchSuccess() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "视频打开过关红包成功");
- this.onClickOpen();
- }
- /**观看失败 */
- watchFailed() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "视频打开过关红包失败");
- // EffectMgr.Inst.addTip("观看视频失败,请稍后再试");
- }
- /**点击打开 */
- onClickOpen() {
- this.ani_openBtn.play("ani_openRedPacket");
- this.scheduleOnce(() => {
- this.ani_openBtn.play();
- this.node_openBtn.active = false;
- this.node_closeBtn.active = false;
- // AudioMgr.Inst.playEffect(AUDIO_CLIP_NAME.redPacket_open);
- mk.audio.playEffect("ef_redPacket_open");
- cc.tween(this.node_rectBg).to(0.2, { opacity: 255 }).call(() => {
- this.node_open.active = true;
- this.node_cashInfo.scaleX = this.node_cashInfo.scaleY = 1.1;
- this.node_getCashBtn.active = false;
- let timeOut = setTimeout(() => {
- clearTimeout(timeOut);
- this.node_getCashBtn.active = true;
- }, 1500)
- }).start();
- let top_end_height = this.node_top.height * this.top_scale_size;
- let top_end_y = cc.winSize.height * 0.5 + top_end_height * 0.5 - 150;
- cc.tween(this.node_top).to(0.3, { scaleX: this.top_scale_size, scaleY: this.top_scale_size, y: top_end_y }).call(() => {
- cc.tween(this.node_cashInfo).to(0.2, { scaleX: 1, scaleY: 1 }).call(() => { }).start();
- }).start();
- let bottom_end_height = this.node_top.height * this.bottom_scale_size;
- let bottom_end_y = -(cc.winSize.height * 0.5 + bottom_end_height * 0.5);
- cc.tween(this.node_bottom).to(0.3, { scaleX: this.bottom_scale_size, scaleY: this.bottom_scale_size, y: bottom_end_y }).call(() => {
- }).start();
- }, 0.9)
- }
- onClickCashOutBtn() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "去提现");
-
- mk.ui.openPanel("CashOutUI");
-
- // Main.Inst.node_game.active = true;
- }
- /**点击领取 */
- onClickGetCash() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "点击普通领取");
- this.getCash(1);
- }
- /**点击领取双倍 */
- onClickDoubelCash() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "点击双倍领取");
- // AdMgr.Inst.watchAd(VIDEOTYPE.PassRedPacket, (ifsuccess) => { this, this.watchDoubleCallBack(ifsuccess) });
- }
- /**观看回调 */
- watchDoubleCallBack(ifSuccess: boolean = false) {
- if (ifSuccess) {
- mk.console.log("观看成功")
- this.watchDoubleSuccess();
- }
- else {
- mk.console.log("观看失败")
- this.watchDoubleFailed();
- }
- }
- /**观看成功 */
- watchDoubleSuccess() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "双倍领取过关红包成功");
- this.getCash(2);
- }
- /**观看失败 */
- watchDoubleFailed() {
- GameMgr.Inst.sendEvent(UI_NAME.RedPacketUI, "双倍领取过关红包失败");
- // EffectMgr.Inst.addTip("观看视频失败,请稍后再试");
- }
- /**是否获取红包 */
- getCash(multiple: number = 1) {
-
- // this.node.active = false;
- mk.ui.closePanel("RedPacketUI");
- PlayerConst.todayPassRedPacketNum++;
- DataMgr.Inst.updateTodayPassRedPacketNum(PlayerConst.todayPassRedPacketNum);
- DataMgr.Inst.updateMoneyNum(this.cashNum * multiple);
- let get_type = multiple === 1 ? 0 : 1;
- HttpMgr.Inst.passRedPacket(get_type, PlayerConst.levelNum, this.cashNum).then((data) => {
- mk.console.log("passRedPacket data", data);
- EffectMgr.Inst.addTip("观看视频成功,成功领取双倍红包");
- DataMgr.Inst.updateMoneyNum(this.cashNum);
- }).catch((err) => {
- });
- if (this.getCallBacK) {
- this.getCallBacK();
- }
- }
- }
- export enum REDPACKETTYPE {
- /**新手 */
- NewPlayer = 0,
- /**过关红包 */
- Pass = 1,
- /** */
- }
|