扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 201|回复: 0

[转载发布] 【更新】提高游戏运行速度_v1.01

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2338

    主题

    403

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10632
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13401

    灌水之王

    发表于 2024-4-19 18:59:47 | 显示全部楼层 |阅读模式
    -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在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2025-3-15 04:39 , Processed in 0.134961 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表