设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1197|回复: 6
打印 上一主题 下一主题

教程中“显示敌人的HP、SP百分比”会使游戏变慢?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2008-1-6
帖子
56
跳转到指定楼层
1
发表于 2008-1-22 02:16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
http://rpg.blue/web/htm/news220.htm
就是这个,选择攻击对象的时候游戏画面上方会出现敌人的血条。可是只要是出现血条的场合(不论攻击还是特技),选择的时候整个画面就会变慢。自己角色的明灭效果出现明显断断续续……敌人脚下的那个红-黄(默认皮肤)的三角指针也会变慢……

抱歉我是脚本菜鸟……如何解决这个变慢问题?谢谢!
版务信息:本贴由楼主自主结贴~
傻,就是傻。有时傻也会变得很聪明。傻反被傻误,成为聪明人!
头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
2
发表于 2008-1-22 02:33:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2008-1-6
帖子
56
3
 楼主| 发表于 2008-1-22 02:43:25 | 只看该作者
可是它为什么会变慢呢?根本原因是什么?

顺便说一句,用另外一个版本的血条http://rpg.blue/web/shownews.asp?id=137 战斗血条 1.8改版,貌似就没有这个问题……

刷新间隔变慢?东西太多影响内存?还是……?
傻,就是傻。有时傻也会变得很聪明。傻反被傻误,成为聪明人!
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8481
在线时间
94 小时
注册时间
2006-12-11
帖子
3156

第2届TG大赛亚军

4
发表于 2008-1-22 03:13:23 | 只看该作者
刷新间隔不会变,主要是看算法问题。如果是比较复杂的渐变色血条而且默认每祯一直调用update重绘的话就会变慢。不过根据我的测试影响不大……看你的机子是什么了。
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2008-1-6
帖子
56
5
 楼主| 发表于 2008-1-22 20:56:31 | 只看该作者
呃……那么用那个血条1.8版(就是细长的,红色和蓝色)为什么又会变得超快呢……我的机子问题……?
这个速度是由什么决定的?
傻,就是傻。有时傻也会变得很聪明。傻反被傻误,成为聪明人!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
6
发表于 2008-1-22 21:05:43 | 只看该作者
1、Scene_Battle 1,234-238行:

       # 如果不是结束战斗回合的情况下
       if @phase != 5
         # 刷新状态窗口
         @status_window.refresh
       end

删了它!就是它造成很卡的。解释一句:这段的功能是刷新状态窗口,防止公共事件中我方减血后状态窗口没有更新出来。

2、不过这段又不能完全不要,否则我方用公共事件或遭到公共事件攻击的时候状态窗口会完全忘记刷新。所以把上面那段插到Scene_Battle 4的  def update_phase4_step6的比较靠下的敌方,变成如下:

def update_phase4_step6
   # 清除强制行动对像的战斗者
   $game_temp.forcing_battler = nil
   # 公共事件 ID 有效的情况下
   if @common_event_id > 0
     # 设置事件
     common_event = $data_common_events[@common_event_id]
     $game_system.battle_interpreter.setup(common_event.list, 0)
   end
   # 如果不是结束战斗回合的情况下
   if @phase != 5
     # 刷新状态窗口
     @status_window.refresh
   end
   # 移至步骤 1
   @phase4_step = 1
end

也就是说,公共事件执行结束后再刷新。这样把几百次刷新变为了1次,而效果相差很小。

经过测试,黑暗圣剑中的灵炮,在做此更改前后,帧速率由9提升至17。还不错。

其实有关优化的内容有很多,公共事件多了也会造成拖沓,这些倒是可以设法手动修改脚本减少拖沓。唯一比较恶心的是地图大了造成的拖沓无法挽回(因为那段代码没有公开在脚本中……)
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2008-1-6
帖子
56
7
 楼主| 发表于 2008-1-22 23:44:46 | 只看该作者
怎么总觉得与我这个没什么关系……还是谢谢楼上!
嗯,减少了刷新次数。
傻,就是傻。有时傻也会变得很聪明。傻反被傻误,成为聪明人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-26 16:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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