小游戏 开放数据域 跟 主域 代码共享的问题
发布于 7 年前 作者 wei21 11873 次浏览 来自 问答

请问小游戏框架里,开放数据域不能import主域的代码吗,如果是,那么

1, 放在主域下的引擎相关的代码(比如图形绘制,场景管理等),在开放域里该如何使用呢?

2, 如果根本不能使用,那么是否可以把引擎代码拷贝一份到开放数据域,单独使用?

3, 如果2可以,那么就是同一个游戏里,会有两份引擎的代码?

不知道理解是否正确,求解,拜谢!

7 回复

方案1:相当与时刻在主屏刷新共享屏幕,会大幅拉低fps,这是我遇到的问题

方案2:完全依赖post,事情会比较复杂

我目前是将这两个方案结合了做的,由猪域驱动,即:

1,在需要绘制好友关系相关数据时,post事件到开放域,同时主域开启绘制共享屏,开放域收到事件后执行相关绘制操作

2,当不需要是,主域关闭绘制共享屏,并post事件到开放域停止相关绘制

这个方案能部分规避方案1的问题,在大部分时间fps能正常,但是一旦启动开放域的绘制fps就掉下来了,希望官方能有更好的指导方案

似乎共享屏渲染到主屏的操作,在安桌手机上效率极低?能从30fps拉低到5fps,ios没有发现相关问题。请问 @秀秀 是否有遇到同样的问题,谢谢

谢谢,感觉这个设计有点坑啊,虽然是为了保护关系数据不被外部任意使用,但是代码共享还是可以支持一下

我的游戏情况更复杂,由于好友的数据无法发送到主域名,所以游戏交互部分必须全部在开放域名下做

我做的类似于时时刻刻和好友的数据比拼的游戏,好友数据必须要每一帧渲染到共享屏

所以主域需要每一帧同步共享屏的

这样做出来掉帧严重的话 那似乎也不是办法

希望官方尽快给出指导方案

我也希望尽快给出一个解决方案 否则代码维护很成问题

目前应该是需要公共的代码 放2份!主域一份,开放域一份

没其他办法

我还没测试到这一步

不知道您是怎么渲染的 大概有2种方式

  1. 全开放域模式下开发,主屏只负责循环刷新 sharedCanvas 到 canvas

  2. 半开放域模式下开发,需要调用关系链的画面在开放域下渲染,主域通过 post 消息到开放域

不清楚频繁 post 消息是否会影响效率,第二种方案理论是需要 每一帧都需要 post 的

回到顶部