-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 endend复制代码
复制代码 用#------
#------包着的这些是外加的意思。
3.其他
实质上帧频率不变,但是做一次Graphics.update(画面更新)就等于做了x次的其他数据运算。
当数据运算量太大时就可能会有卡的状况。(Speed_Lv影响着数据运算比起平常倍数!)
还有现在的版本只能加速/不加速,不能减速!
4.范例
没什么范例可给的,一插脚本就见效嘛~伸手要范例的回帖去吧。
算了,有些无谓的回帖,但是又不是下载的,慢慢在草原奔跑吧~
本帖来自P1论坛作者一箭烂YiJL,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=176352 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。