赞 | 0 |
VIP | 8 |
好人卡 | 27 |
积分 | 56 |
经验 | 41413 |
最后登录 | 2012-10-21 |
在线时间 | 833 小时 |
Lv4.逐梦者 弓箭手?剑兰
- 梦石
- 0
- 星屑
- 5589
- 在线时间
- 833 小时
- 注册时间
- 2010-11-17
- 帖子
- 1140
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 一箭烂YiJL 于 2011-4-25 11:55 编辑
-1.序前序
我还是第一次在XP区发布(我是VX区驻扎人员,偶然探望XP区= =),由于这一帖:【更新】提高游戏运行速度(v1.01)
需要在XP的移植,因为XP并没有Scene_Base,所以用了也无效。
于是"下手"在了Graphics.update。这种手法既能用于XP,又能用于VX。
在XP的非"平滑模式"下,会卡着,具体原因是用了Graphics.frame_count来判断"跳帧",
后来我又用了另外的解决办法,但是当非"平滑模式"下,将倍数x2后,(其他的都没问题)
fps会莫名其妙的增加至40帧,于是这个只是应用在游戏测试中而已。
之后以下的句子跟VX的帖子一样:
(ps:VX没有XP的v1.01更新内容,因为VX没有F12问题= =)
0.序
往往游戏过程因为太慢,所以想高速测试有难度。
最简单的办法是将帧频率调高,但是不能超过120。
这办法适用在游戏测试中(尤其是破关时间),请不要发布于游戏中,
因为速度不等于效率,极快会感觉一卡一卡。
1.讲解
当删掉Graphics.update时,会出现画面不更新,但是操作极快的问题。
loop do绝对超过一秒60次(帧频率)。于是这是我的猜测:
Graphics.update除了有更新画面的基本动作外,还会有:- sleep(1/Graphics.frame_rate - 更新画面的时间 - 逻辑运算的时间) # 此处经过修正
复制代码 所以不用Graphics.update就会高速不断地循环计算。
2.脚本
综合以上,脚本如下:
- #==============================================================================
- # ■ 提高游戏速度(v1.0.1) by 一箭烂
- #------------------------------------------------------------------------------
- # 设置Graphics的@speed_lv以提高游戏速度,
- # 请插在main以上的位置
- #
- # 属性:
- #
- # Graphics.speed_lv
- # 加快速度(倍数), 可修改
- #
- # 更新:
- #
- # - *1.0.1* (2011-04-21) By 一箭烂(YiJL)
- # *改了些东西, 解决F12问题
- # *换了速度变量的方式
- #
- # - *1.0.0* (2011-04-21) By 一箭烂(YiJL)
- # *初版
- # *对Graphics.frame_count的修正
- #
- #==============================================================================
- module Graphics
- @speed_lv = 5 # 加快速度(倍数)
- @timer = 0
- @speed_update = method("update") unless @speed_update
- #--------------------------------------------------------------------------
- # ● Graphics.update
- #--------------------------------------------------------------------------
- def self.update
- @timer += 1
- @timer %= @speed_lv
- if @timer >= (@speed_lv - 1)
- @speed_update.call # 更新游戏画面
- Graphics.frame_count -= 1
- end
- Graphics.frame_count += 1
- end
- #--------------------------------------------------------------------------
- # ● Graphics.speed_lv
- #--------------------------------------------------------------------------
- def self.speed_lv
- @speed_lv
- end
- #--------------------------------------------------------------------------
- # ● Graphics.speed_lv=
- #--------------------------------------------------------------------------
- def self.speed_lv=(value)
- @speed_lv = value
- end
- end
复制代码 用#------
#------包着的这些是外加的意思。
3.其他
实质上帧频率不变,但是做一次Graphics.update(画面更新)就等于做了x次的其他数据运算。
当数据运算量太大时就可能会有卡的状况。(Speed_Lv影响着数据运算比起平常倍数!)
还有现在的版本只能加速/不加速,不能减速!
4.范例
没什么范例可给的,一插脚本就见效嘛~伸手要范例的回帖去吧。
算了,有些无谓的回帖,但是又不是下载的,慢慢在草原奔跑吧~
提高游戏运行速度_v1.01.zip
(203.58 KB, 下载次数: 1655)
|
评分
-
查看全部评分
|