lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 7522|回复: 6
打印 上一主题 下一主题

页面无刷新二次加载游戏出现帧数加倍

[复制链接]

3

主题

0

好友

55

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2017-8-29 19:34:03 |只看该作者 |倒序浏览
       背景:之前用lufy做了好几个游戏,最近有点时间把游戏整合了起来,大概用了一些react+redux+reactr-router这一档档框架集成方案,为了适应ES6的模块化将lufylegend做了一些处理(export出了一些全局API类)。另外在集成过程中react本身没有侵入之前的代码,只是简单做了一个canvas的封装(一个游戏也就成为了一个组件),在React的componentDidMount中完成游戏的初始化(LInit初始化)、componentWillUnmount中对backLayer进行remove和die以清楚元素和事件保证下一次加载是最初的状态,这样的方案的特点是通过url无刷新加载组件,在LInit方法中加入了LEvent.INIT这样保证了游戏的加载时机(可以通过菜单按钮切换游戏)。

       问题:由于页面无刷新的存在,每个游戏第一次加载的时候是正常的,但是切出之后再第二次进入游戏,游戏的帧数好像就加了一倍(再循环帧数会再加倍),使得游戏速度加快了一倍,尝试使用强制刷新forceRefresh和重设速度setFrameRate也没有解决问题,在此求助lufy以及各位是否有遇到过这种问题,如何解决?谢谢

回复

使用道具 举报

3

主题

0

好友

55

积分

士兵

Rank: 1

沙发
发表于 2017-8-29 19:50:33 |只看该作者
刚刚找到lufylegend源码版看了下,发现了问题所在,每次Lint都初始化了一个时钟LGlobal.frameRate,重新初始化清除掉就可以了,想了下,这个帖子还是保留吧,希望可以解决同问人的问题!
回复

使用道具 举报

37

主题

8

好友

9309

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

板凳
发表于 2017-8-29 20:34:02 |只看该作者
henry_wei 发表于 2017-8-29 19:50
刚刚找到lufylegend源码版看了下,发现了问题所在,每次Lint都初始化了一个时钟LGlobal.frameRate,重新初 ...

确实是这样
不回答与技术和引擎不相关的问题
回复

使用道具 举报

4

主题

2

好友

2880

积分

牙门将军

Rank: 5Rank: 5

地板
发表于 2017-9-17 07:30:11 |只看该作者
henry_wei 发表于 2017-8-29 19:50
刚刚找到lufylegend源码版看了下,发现了问题所在,每次Lint都初始化了一个时钟LGlobal.frameRate,重新初 ...

请问重新初始化时如何清除?代码如何写?
回复

使用道具 举报

37

主题

8

好友

9309

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

5#
发表于 2017-9-17 16:44:49 |只看该作者
hjwhhhh 发表于 2017-9-17 07:30
请问重新初始化时如何清除?代码如何写?
除非极特殊情况,否则不需要初始化两次
为什么要重新初始化?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

4

主题

2

好友

2880

积分

牙门将军

Rank: 5Rank: 5

6#
发表于 2017-9-18 04:55:30 |只看该作者
lufy 发表于 2017-9-17 16:44
除非极特殊情况,否则不需要初始化两次
为什么要重新初始化?

因为重新初始化可以直接重新开始游戏而不需要刷新页面,这样的话可以用于HTML5转Android应用玩而不用游戏结束时重新打开游戏再玩,当然如果不用转Android的话可以直接不用重新初始化代码,直接刷新页面就行了,最近我制作一个游戏重新初始化帧数加倍情况,不知如何解决,代码应该如何写呢?老师,能否举个简单例子吗?
回复

使用道具 举报

37

主题

8

好友

9309

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

7#
发表于 2017-9-18 07:50:39 |只看该作者
hjwhhhh 发表于 2017-9-18 04:55
因为重新初始化可以直接重新开始游戏而不需要刷新页面,这样的话可以用于HTML5转Android应用玩而不用游戏 ...

我就知道是这个原因。。。。
你看看哪个游戏重新开始游戏需要刷新页面的
重新开始游戏,把游戏画面清空就行了,不需要重新初始化引擎
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-4-19 20:42 , Processed in 0.050334 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部