小游戏开发经验交流分享

1.屏幕适配方案,刘海屏
2.分享无回调解决方案
3.如何完美获得用户信息授权

后期会开源一个简单的框架
对了Cocos Creator版本是V1.9.3

https://forum.cocos.com/uploads/default/original/3X/4/e/4e0baa4fcbfb1d8f86a1a8352f92edfd9796cef2.jpg
欢迎扫码交流

15赞

// 适配方案
let frameSize = cc.view.getFrameSize();
let bFitWidth = (frameSize.width / frameSize.height) < (1280 / 720)
cc.Canvas.instance.fitWidth = bFitWidth;
cc.Canvas.instance.fitHeight = !bFitWidth;

1赞

//刘海屏判断
g_config.isFringeScreen = false
if(cc.sys.os == cc.sys.OS_IOS){
g_config.isFringeScreen = (frameSize.width == 414 && frameSize.height == 896)
||(frameSize.width == 375 && frameSize.height == 812);
}else{
if(frameSize.height / frameSize.width > (16/9))
{
g_config.isFringeScreen = true
}
}

2赞

分享的时候小游戏会进入后台,判断进入后台的时间间隔超过2.5秒就算分享成功

2赞

用户信息授权
方案一:创建一个全屏透明的用户信息授权按钮,玩家点击任意地方弹出授权弹窗。
方案二:在大厅所有重要按钮上面创建一个用户信息授权按钮,用户点击某一个按钮之后首先弹出授权确认弹窗,然后程序自动触发按钮点击事件,不需要玩家第二次点击!

1赞

方案一代码

方案2


之前有反馈说手机发烫问题。因为已经采用对象池 自动和图 drawcall也就30几,最终决定锁帧率。

    // 帧率锁定  锁帧
    let fps = (cc.sys.os == cc.sys.OS_IOS)? 45 : 45
    cc.game.setFrameRate(fps);
    if(CC_WECHATGAME)wx.setPreferredFramesPerSecond(fps)

另外,微信调试模式下的RT-FPS并不是实时的FPS。

下面是我写的一个简单的实时FPS

// 显示版本号,实时帧率
this.versionLable.node.on(cc.Node.EventType.TOUCH_START, ()=>{
this.versionLable.string = g_config.version
this.scheduleOnce(this.showFPS, 5)
},this)

//实时帧率显示
showFPS()
{
    let last = null
    this.schedule(function() {
        let now = cc.director.getTotalFrames()
        if(last)
        {
            this.versionLable.string = now - last
        }
        last = now
    }, 1);
},
1赞

游戏里面海底的扭曲效果是在网上找的shader,略微调整了下参数。
参考 https://forum.cocos.com/t/creator-shader/36388

感觉Cocos Creator文档挺好用,编辑器的自动合图也很方便。

一个回复都没有:joy:

自己申请的软著吗

数据怎么样

公司给申请的

今天在导量

导量怎么导鸭 指点下 哈哈

腾讯广告位:cry:

怎么既让玩家体验好,有能点广告,看视频

那就看你的设计了 :sunglasses:

欢迎大家给建议啊