查看: 2452|回复: 6

[已经过期] 做的游戏比较卡,哪位前辈有没有好的解决方法

[复制链接]
梦石
0
星屑
848
在线时间
250 小时
注册时间
2013-10-4
回帖
78
发表于 2014-7-12 23:57:00 | 显示全部楼层 |阅读模式

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

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

×
我做的游戏,地图都是20X15格的,每张地图上事件都很少超过10个;但是现在做到一半游戏特别的卡,我F2查看了下,一直在25FPS~60FPS之间波动;玩的过程中将近5秒就要停顿一下,虐心啊!各路大神有没有什么解决思路,求助求助
梦石
0
星屑
50
在线时间
139 小时
注册时间
2008-6-20
回帖
98
发表于 2014-7-13 00:52:39 | 显示全部楼层
可以试试这个AntiLag这个脚本,一群小孩子跑来跑去都不卡。

点评

谢啦,等下载下来研究研究  发表于 2014-7-13 09:39
回复

使用道具 举报

梦石
0
星屑
721
在线时间
0 小时
注册时间
2014-7-13
回帖
3
发表于 2014-7-13 01:22:01 | 显示全部楼层
本帖最后由 VIPArcher 于 2014-7-13 01:30 编辑

[pre lang="ruby" line="1"]############################################################################
# RM内存自动清理脚本(XP&VX) v 1.00
# 作者:精灵使者 创意:夏娜 各种压力的猫君
# 按惯例,此类脚本应该放在最上面,就会自动工作。
# 使用方法:直接插入脚本的最上面即可
# 如果感觉卡机,请修改GC_FREQ
############################################################################
  #--------------------------------------------------------------------------
  # ● 设定部分
  #--------------------------------------------------------------------------
module GC_CLEAR
GC_FREQ = 10 #清理内存的频率(如果卡机,请调大清理频率,默认1秒整理1次)
GC_TRANSITION = true #场景变换的时候是否立即清理,默认开启
end
  #--------------------------------------------------------------------------
  # ● 创建自动清理线程
  #--------------------------------------------------------------------------
if @gc_thread.nil?
@gc_thread = Thread.new{loop{GC.start;sleep(GC_CLEAR::GC_FREQ)}}
end
  #--------------------------------------------------------------------------
  # ● 场景变换时清理部分
  #--------------------------------------------------------------------------
class << Graphics
alias origin_transition transition unless method_defined? :origin_transition
alias origin_freeze freeze unless method_defined? :origin_freeze

def transition(*args)
  origin_transition(*args)
  GC.start if GC_CLEAR::GC_TRANSITION
end
def freeze
  origin_freeze
  GC.start if GC_CLEAR::GC_TRANSITION
end
end
[/pre]






试试这个脚本,放在所有脚本的最上面。

点评

我的工程里已经有2个清理脚本 依然有一点小卡~呼呼 事件太多啦  发表于 2014-7-21 16:07
代码插进去了,似乎没什么变化,不过还是谢谢  发表于 2014-7-13 09:35
小贴士:发帖中可用<>按钮来发脚本代码哦。  发表于 2014-7-13 01:32

评分

参与人数 1星屑 +66 收起 理由
VIPArcher + 66 感谢帮忙

查看全部评分

回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-13 07:07:40 | 显示全部楼层
楼主请确认:地图上没有过多的并行处理事件

点评

并列处理的事件是有几个,但也不多,而且执行完毕后都通过独立开关转到空白事件  发表于 2014-7-13 09:27
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-7-13 12:04:21 | 显示全部楼层
1.你是否用了太多效果类的脚本(例如烛光或者视野限制时间流逝一类的脚本?)
2你试试新建一个工程,然后把脚本和事件复制过去,剔除一些没必要的东西,再看看FPS是否还是很低

点评

视野限制和时间流逝并不吃资源。  发表于 2014-7-13 12:05
回复

使用道具 举报

梦石
0
星屑
50
在线时间
196 小时
注册时间
2013-5-10
回帖
379
发表于 2014-7-13 12:29:38 | 显示全部楼层
1.LZ并行处理的公共事件太多/不合理,试试在需要并行处理的公共事件末尾加上"等待10帧"
2.LZ使用了天气、地图色调变化,这两个比较卡。
3.LZ使用了某些脚本(初步判定是有关于地图上的东西的脚本)
4.优化脚本大部分都是优化了事件执行方面的东西,如果LZ游戏事件不多最好别用优化脚本。
5.5秒就停顿一下说明有东西每隔五秒就会运行一次,这样的话如果不是公共事件就是脚本了。

评分

参与人数 1星屑 +66 收起 理由
taroxd + 66 我很赞同

查看全部评分

大前年的作品《猪刀历险记》
前年的作品《深蓝之心》
上面都是黑历史!
开学了我终于要长久潜水了!
回复

使用道具 举报

梦石
0
星屑
155
在线时间
129 小时
注册时间
2014-2-22
回帖
206
发表于 2014-7-13 14:32:49 | 显示全部楼层
你需要一台优秀的电脑,至少得有2G内存,然后你需要一条线程(?),处理你的dll,最后你需要一个东西叫事件防卡
切记:除了系统的API以外,任何dll都会让你掉帧一半以上
很多年了呢,坑还是没填完…………(草
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部