微信小游戏帧同步demo(minigame-lockstep-demo)学习笔记

  • 框架 pixi.js
  • 游戏配置game.json
  • 游戏服务gameserver.js
    • 帧同步
      • 操作流程
        • 1.操作发送到帧同步
        • 2.用户收到帧,执行
      • 1.逻辑帧
        • 定义帧同步帧率30
          • this.fps = 30;
          • lockStepOptions.gameTick = 33
        • 逻辑帧的固定时间间隔 this.frameInterval
        • 调用逻辑帧 execFrame
          • 逻辑帧 frameUpdate(dt)
          • 计算渲染帧渲染目标 preditUpdate(dt)
      • 2.渲染帧 window.requestAnimationFrame
        • 渲染帧 renderUpdate(dt)

框架 pixi.js

游戏配置game.json

游戏服务gameserver.js

使用微信游戏服务wx.getGameServerManager,
包括房间及帧同步等,api参考官方文档。

帧同步

操作流程

1.操作发送到帧同步

发送GameServerManager.uploadFrame

2.用户收到帧,执行

接收GameServerManager.onSyncFrame

1.逻辑帧

定义帧同步帧率30
this.fps = 30;
lockStepOptions.gameTick = 33

(这里不懂为什么逻辑帧比实际游戏帧下发周期小3,难道不会导致计算的时间preFrameTick大于实际时间nowFrameTick,然后帧堆在本地,全跑的后边快进的逻辑)

逻辑帧的固定时间间隔 this.frameInterval
this.frameInterval = parseInt(1000 / this.fps);

用固定的时间间隔来计算运行结果,保证逻辑帧的运行结果一致

调用逻辑帧 execFrame

渲染帧执行时判断有没有未执行逻辑帧,有则执行
堆积过多时,就把堆积的全部执行,即为快进

逻辑帧 frameUpdate(dt)

dt为固定值this.frameInterval,用于计算逻辑帧的处理结果

计算渲染帧渲染目标 preditUpdate(dt)

dt为固定值this.frameInterval,用于计算渲染帧的最终渲染目标

2.渲染帧 window.requestAnimationFrame

window.requestAnimationFrame作为前端渲染帧,与帧同步的帧没有直接关系
在index.js中调用

渲染帧 renderUpdate(dt)

这里dt是当前渲染帧运行时间与上一个渲染帧的差值(数值不固定)

微信小游戏帧同步demo(minigame-lockstep-demo)学习笔记相关推荐

  1. 微信小程序连接物联网(二):NodeMCU Lua学习笔记

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

  2. 微信小游戏 Egret开发数据域官方Demo下载地址

    随着引擎的升级,伴随而来就是各种问题,使用官方调试过的Demo,少走弯路. Mark下 官方Demo 转载于:https://www.cnblogs.com/gamedaybyday/p/919218 ...

  3. 帧同步_微信小游戏接入“熊孩子噩梦”健康系统 帧同步能力上线

    3月31日,微信小游戏官方公众号"做个小游戏"发文宣布全新面向未成年人保护的健康系统已经上线,该系统联动"成长守护平台"的功能,可以更好助力家长群体对于未成年人 ...

  4. 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)

    微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...

  5. 微信小游戏 - Canvas/WebGL Demo 移植

    这是个人关于微信小游戏系列文章的第一篇,在这系列文章里会描述 -- 如何把一些 Canvas/WebGL Demo 移植到小游戏环境并支持双端运行: 对小游戏在 Android 平台的运行时架构进行分 ...

  6. 移植到android_微信小游戏 Canvas/WebGL Demo 移植

    本文由大神 易旭昕 授权发布, 原文链接:https://zhuanlan.zhihu.com/p/33785287 (点击文后原文链接可跳转至作者的知乎) --------------------- ...

  7. 微信小游戏开发入门(二)-用CocosCreator官方Demo生成微信小游戏

    微信已经放出小游戏的开发工具包,虽然功能尚未完善,但已经可以开发调试了.我们使用CocosCreator官方的polished_project例子来讲解如何生成微信小游戏. 1.下载polished_ ...

  8. 安卓游戏帧数如何测试软件,Android如何测试微信小游戏和小程序?

    PerfDog作为移动全平台性能测试分析工具,开发者可以利用PerfDog进行性能数据获取及分析,提升小游戏&小程序的性能和品质.以下将通过详细的操作指引,手把手教大家如何利用PerfDog测 ...

  9. 极光会客厅:大型H5游戏如何登陆微信小游戏及游戏性能优化分享

    上周末,由极光网络主办的首期"极光会客厅"正式开门迎客.在本次的"2D小游戏开发实战技术沙龙"上,极光网络客户端主程陈策以及极光网络项目总监陈源向一众与会者分享 ...

最新文章

  1. 开源wkhtmltopdf使用心得 (四)
  2. 小白学数据分析-----付费渗透率再研究
  3. 一种快速的公交专用车道检测方法
  4. 动态排序JavaBean
  5. 前端基础1:HTML常用标签
  6. Android之FLAG_ACTIVITY_SINGLE_TOP
  7. rabbitmq direct 多个消费者_RabbitMQ实战应用技巧
  8. Linux下PhpMyAdmin程序目录的安全管理
  9. 搜狐校园“情感分析×推荐排序“算法大赛 AutoX方案 转载poteman
  10. killer网卡ubantu下不能wifi联网的问题(据说就是intel网卡)(心酸血泪史)(不升级内核)
  11. 基于国密算法SM2非证书标识公钥密码技术(IPK)
  12. arcgis公里坐标转经纬度_利用arcgis实现经纬度和平面坐标互转
  13. 谷歌SEO长尾关键词挖掘方法
  14. Vue 2.0 实战之仿Eleme WebApp SPA(学习)
  15. 飞一般的感觉——掌智手机助手使用感受
  16. TECO状态的生产订单结算到在制品怎么办?
  17. 【李峋同款爱心加照片】
  18. 5角硬币中的币王,已价值16000元,谁家有?
  19. css中clip:rect用法
  20. 我的k8s随笔:Kubernetes 1.17.0 部署

热门文章

  1. 浅谈搜索引擎——SEO
  2. PHP获取路径和目录方法
  3. Linux命令大总结
  4. 用win+r启动常用程序和文档【最绿色最高效】
  5. pywin32_win32gui win32con win32com win32api
  6. 计算机奥赛金牌排名,2019年第36届信息学奥赛金牌获奖名单公布!信息学竞赛中学有哪些?...
  7. 法兰克机器人循环编程_【发那科】FANUC机器人循环指令介绍
  8. 渡一教育公开课web前端开发JavaScript精英课学习笔记(六)函数及作用域
  9. 请帮忙。。。 使用谷歌代码网站上的开源代码,为指定站点提供AJAX定制搜索
  10. .tff文件删除问题