egret接4399平台

简介: egret接4399平台
推荐阅读:

      对于小游戏来说,一般我们能想到的就是微信小游戏,在微信小游戏出来之前,数4399小游戏独大。今天就来和大家分享一下egret接4399平台的流程吧。
      首先我们需要加入4399相关的库文件,由于4399使用js,egret项目使用ts,因此需要使用ts,调用js,在这里我把方法封装在库文件夹中,大家可以在左侧加群下载。
      下载完成后将文件中得PlatHelper放入egret项目里即可。这时我们可以发现该文件包含PlateHelper.ts,PlateHelper.js这两个文件。接下来在egert项目中调用4399的广告,排行榜,分享之类的功能,只需要调用PlateHelper.方法,就可以了。下面主要介绍分享,排行榜,广告的实现,其他功能同理,调用4399API时,可以查看4399平台上对应的API介绍:4399API

一。分享

PlateHelper.share();

二。排行榜

1.自定义item皮肤
在这里插入图片描述
代码如下:

class myGlobalRankItem extends eui.Component implements eui.UIComponent {

    // public bg: eui.Image;
    public orderIcon: eui.Image;
    public head: eui.Image;
    public niceName: eui.Label;
    public order: eui.Label;
    public score: eui.Label;

    public constructor() {
        super();
    }

    protected partAdded(partName: string, instance: any): void {
        super.partAdded(partName, instance);
    }

    protected childrenCreated(): void {
        super.childrenCreated();
    }
    /// 初始化ui(老版)
    public init2(order: number, score: number) {
        this.argOrder = order;
        this.argScore = score;
    }

    // /// 初始化ui(新版本)
    // public init(order: number, head: string, name: string, score: number) {

    //     this.order.text = ""+order;
    //     this.niceName.text = name;
    //     this.score.text = ""+score;
    //     this.orderIcon.visible = order < 4;
    //     this.order.visible = order > 3;

    //     if(order <= 3){
    //         this.orderIcon.source = RES.getRes("order"+order+"_png");
    //     }

    //     RES.getResByUrl(head, function(event){
    //         this.head.source = <egret.Texture>event;
    //     }, this, RES.ResourceItem.TYPE_IMAGE);
    // }
}

2.自定义排行榜皮肤
使用scroll+View管理排行榜中每个item的滑动。
在这里插入图片描述
目前排行榜还是旧版的,只能显示排名和得分。

class rankPanel extends eui.Component implements eui.UIComponent {
    public groupBtn: eui.Button;
    public inviteBtn: eui.Button;
    public shareBtn: eui.Button;
    /**关闭按钮 */
    public returnBtn: eui.Button;
    public globalScr: eui.Scroller;
    public globalView: eui.Group;


    public constructor() {
        super();
    }

    protected partAdded(partName: string, instance: any): void {
        super.partAdded(partName, instance);
    }

    protected childrenCreated(): void {
        super.childrenCreated();
    }
    /// 更新排行榜(老版)
    public updateGlobalRank() {
        var self = this;

        try {
            PlateHelper.getRank(function (data) {
                console.log("ftest2 getRank", data)
                if (data.code == 10000) {
                    self.globalView.removeChildren();
                    for (var i = 0; i < Math.min(data.data.length, 30); i++) {
                        var vl = data.data[i]
                        var item = new myGlobalRankItem();
                        item.init2(vl.rank, vl.score);
                        // item.init(vl.rank,vl.head,vl.name, vl.score);
                        item.y = 150 * i;
                        self.globalView.addChild(item);
                    }
                }
            });
        } catch (e) { console.error(e); }
    };
    // /// 更新排行榜
    // public updateGlobalRank(){
    //     var self = this;

    //     try{
    //         console.log("ftest2 updateGlobalRank 1")
    //         PlateHelper.getNearRanking(function(data){
    //             console.log("ftest2 updateGlobalRank 2", data)
    //             if(data.code == 10000){
    //                 self.globalView.removeChildren();
    //                 for(var i=0; i<data.data.list.length; i++){
    //                     var vl = data.data.list[i]
    //                     var item = new myGlobalRankItem();
    //                     item.init(vl.rank, PlateHelper.getUserAvatar(vl.uId), vl.userName, vl.score);
    //                     self.globalView.addChild(item);
    //                 }
    //             }
    //         }, 20);
    //     }catch(e){ console.error(e); }
    // };
}

      使用try Cath捕捉异常。使用PlateHelper.getRank调用排行榜接口。10000代表获取成功,10001为获取失败。假设列表最多显示30个item,依次遍历获得的排行榜数据。
3.玩家提交分数

    /// 提交分数(不全的老版)
    public plateSubmitScore(score, call) {
        PlateHelper.submitScore(score, function (data) {
            if (call) { call(data); }
        })
    };
    
    // /// 提交分数(不稳定的新版)
    // public plateSubmitScore(score, call){
    //     if(PlateHelper.isLogin()){
    //         // 提交分数
    //         try{
    //             PlateHelper.submitRanking(score, function(data){
    //                 if(call){ call(data); }
    //             });
    //         }catch(e){ console.error(e); }
    //     }else{
    //         egret.localStorage.setItem("bSubmitScore", "1");
    //         PlateHelper.login(function(data){});
    //     }
    // };

三。广告

      if (PlateHelper.canPlayAd()) 是否可以播放;可以播放广告时播放广告:PlateHelper.playAd(function (data) 。10000: 开始播放;10001:播放结束。

if (PlateHelper.canPlayAd()) 
{
    //能播放广告
         PlateHelper.playAd(function (data) 
         {
                if(obj.code === 10000)
                {
                    console.log('开始播放')
                 } 
                 else if(obj.code === 10001)
                 {
                    console.log('播放结束')
                 } 
                 else 
                 {
                    console.log('广告异常')
                 }
             }
           });
 } 
 else 
 {
        //不能播放广告
 }

      需要注意的是,看广告获得奖励,会存在奖励显示不及时,原因是:播放广告时, egret的心跳停止,广告结束不会自动恢复心跳,需要点击一下才能激活。解决办法:注释掉main..ts中的下列代码:

        egret.lifecycle.onPause = () => {
            egret.ticker.pause();
        }

        egret.lifecycle.onResume = () => {
            egret.ticker.resume();
        }

      其他功能调用同上。现在可以打H5包了。修改版本号(在这里我修改为1.0.0),在路径lianlian4399\bin-release\web\1.0.0下,用文件中的index.html替换项目中的index.html。然后

在路径lianlian4399\bin-release\web\1.0.0下,全选,压缩为.zip文件
,上传zip文件即可进行调试.
相关文章
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 &lt;&lt;EOF binary put file.txt quit EOF ```
826 4
|
数据可视化 前端开发 数据管理
LayUI之树形权限菜单
LayUI之树形权限菜单
302 0
|
图形学
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
994 0
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
361 3
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
机器学习/深度学习 PyTorch 算法框架/工具
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
【10月更文挑战第1天】深度学习中,模型微调虽能提升性能,但常导致“灾难性遗忘”,即模型在新任务上训练后遗忘旧知识。本文介绍弹性权重巩固(EWC)方法,通过在损失函数中加入正则项来惩罚对重要参数的更改,从而缓解此问题。提供了一个基于PyTorch的实现示例,展示如何在训练过程中引入EWC损失,适用于终身学习和在线学习等场景。
1334 4
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
|
5G 网络安全 数据安全/隐私保护
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程(上)
小米路由器MINI刷Breed并刷写第三方潘多拉固件教程
1174 0
|
定位技术 图形学
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
欢迎来到王者荣耀!
欢迎来到王者荣耀!
1323 1
|
存储 前端开发 JavaScript
vue+elementui+mysql实现个人博客系统
vue+elementui+mysql实现个人博客系统
|
存储 Web App开发 安全
XSS漏洞原理(三)存储型
XSS漏洞原理(三)存储型

热门文章

最新文章