搜索附件  
同能RPG制作大师 附件中心 同能RM技术讨论区 RPG Maker XP 讨论区 提高游戏运行速度_v1.01.zip

提高游戏运行速度_v1.01.zip

 

【更新】提高游戏运行速度_v1.01:
-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除了有更新画面的基本动作外,还会有:
  1. sleep(1/Graphics.frame_rate - 更新画面的时间 - 逻辑运算的时间)    # 此处经过修正复制代码
复制代码
所以不用Graphics.update就会高速不断地循环计算。

2.脚本
综合以上,脚本如下:
  1. #==============================================================================# ■ 提高游戏速度(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在线咨询功能删除,谢谢。

QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

GMT+8, 2024-9-21 16:33 , Processed in 0.039009 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部