签到(CocosCreator)

简介: 签到(CocosCreator)
推荐阅读:

1.前沿

      签到模块几乎是每个游戏必不可少的模块,它存在的目的主要是为了让玩家坚持每天上线,给予这些玩家一定的奖励,从而保证游戏留存率。
      今天来给大家讲讲签到模块的实现,并提供一些优质的方法,实现某些功能。先说说我们的需求吧,需要显示整月每日的签到奖励信息,签到情况。为了美观,将其设计为上下滑动可查看当月整体情况。

2.UI界面

      1.添加一个ScrollView,命名为signScrollView,调整合适大小,设置ScrollView属性如下:
在这里插入图片描述
      主要注意取消勾选Horizantol(即取消水平滑动,允许垂直滑动,该功能可根据实际情况修改)
      2.同时调整ScrollView下的View大小,和ScrollView大小保持一直,表示显示窗口大小。
      3.为View下的content添加Layout组件,选择类型为GRID,并设置Padding的属性,即content下面的item距离content上下左右的间距,同事设置每个item之间的上下间距(Spaceing X),左右间距(Spaceing Y):在这里插入图片描述

3.签到按钮添加监听事件

self.findBtn("btn_sign", uiRoot.bottom, () => {
     //签到处理
     }
 })

4.服务器端数据处理

服务器端使用一个Int32位的数存储传输当月签到情况
// 用位操作表示签到情况(d=月中第几天;第d天是否签到=(signDay & (1<<(d-1))) == 1)
int32 signDay = 4;

        //data.signDay服务器数据(int32)
        var str = data.signDay.toString(2).split('');//将int32转换位二进制数字符串,进而保存位数组
        cc.log("逆序日期数组", str);
        var dayArr = str.reverse().join('').split('');//将该数组逆序排列
        cc.log("正序日期数组", dayArr );
        //上面的操作是为了调试输出的日志,可注释
        
        for (let i = 0; i < this.monthDays; i++) {
            if ((data.signDay & (1 << i)) == 1) {
                //已签到
            } else {
                //未签到
            }
        }

4.结束语

      使用一个int32位的数代替传统的签到数组,既能提高传输速率,也能降低内存的消耗,第一次使用该方法来实现数据的传输与保存,特意记录下来分享给大家。

相关文章
|
4月前
|
JavaScript 前端开发 小程序
风靡全网的《羊了个羊》,其实可以用几百行代码复刻?
《羊了个羊》是一款曾在2022年9月风靡全网的小游戏,凭借第二关的超高难度成为现象级话题。本文通过CodeBuddy代码助手,探讨该游戏的核心机制与爆火原因,并尝试复刻其玩法。游戏结合“叠层消除+有限背包”设计,利用社交传播和心理驱动吸引用户,通关率极低的第二关更是激发了玩家的挑战欲。借助HTML和JS开发,我们逐步实现基础功能与优化,最终完成一个可运行的版本。无论是学习开发技巧还是理解爆款逻辑,这都是一次有趣的实践。
|
小程序
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
2258 0
|
11月前
|
JavaScript 前端开发
如何在JS中声明一个对象
如何在JS中声明一个对象
231 0
|
JSON JavaScript 数据格式
详细解读CococCreator跨域访问资源服务器
详细解读CococCreator跨域访问资源服务器
266 0
|
9月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
|
关系型数据库 MySQL 数据库
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
1826 1
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
claude3.5官网入口 - Claude3.5 Sonnet国内使用教程
在这个信息爆炸的时代 💥,我们每天都被海量的数据和信息包围 🌊。如何高效地处理信息、获取知识、提升效率,成为了现代人面临的巨大挑战 💪
|
API 开发者
【cocos 2d微信小游戏开发教程】基础使用笔记分享(一)
【cocos 2d微信小游戏开发教程】基础使用笔记分享(一)
428 0
cocos 2.4*项目实战笔记及源码分享 —— 飞机大战小游戏
cocos 2.4*项目实战笔记及源码分享 —— 飞机大战小游戏
384 0
|
算法
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
708 0