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

Project1

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

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
848
在线时间
250 小时
注册时间
2013-10-4
帖子
120
跳转到指定楼层
1
发表于 2014-7-12 23:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我做的游戏,地图都是20X15格的,每张地图上事件都很少超过10个;但是现在做到一半游戏特别的卡,我F2查看了下,一直在25FPS~60FPS之间波动;玩的过程中将近5秒就要停顿一下,虐心啊!各路大神有没有什么解决思路,求助求助

Lv1.梦旅人

梦石
0
星屑
50
在线时间
139 小时
注册时间
2008-6-20
帖子
104
2
发表于 2014-7-13 00:52:39 | 只看该作者
可以试试这个AntiLag这个脚本,一群小孩子跑来跑去都不卡。

点评

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
721
在线时间
0 小时
注册时间
2014-7-13
帖子
4
3
发表于 2014-7-13 01:22:01 | 只看该作者
本帖最后由 VIPArcher 于 2014-7-13 01:30 编辑

RUBY 代码复制
  1. ############################################################################
  2. # RM内存自动清理脚本(XP&VX) v 1.00
  3. # 作者:精灵使者 创意:夏娜 各种压力的猫君
  4. # 按惯例,此类脚本应该放在最上面,就会自动工作。
  5. # 使用方法:直接插入脚本的最上面即可
  6. # 如果感觉卡机,请修改GC_FREQ
  7. ############################################################################
  8.   #--------------------------------------------------------------------------
  9.   # ● 设定部分
  10.   #--------------------------------------------------------------------------
  11. module GC_CLEAR
  12. GC_FREQ = 10 #清理内存的频率(如果卡机,请调大清理频率,默认1秒整理1次)
  13. GC_TRANSITION = true #场景变换的时候是否立即清理,默认开启
  14. end
  15.   #--------------------------------------------------------------------------
  16.   # ● 创建自动清理线程
  17.   #--------------------------------------------------------------------------
  18. if @gc_thread.nil?
  19. @gc_thread = Thread.new{loop{GC.start;sleep(GC_CLEAR::GC_FREQ)}}
  20. end
  21.   #--------------------------------------------------------------------------
  22.   # ● 场景变换时清理部分
  23.   #--------------------------------------------------------------------------
  24. class << Graphics
  25. alias origin_transition transition unless method_defined? :origin_transition
  26. alias origin_freeze freeze unless method_defined? :origin_freeze
  27.  
  28. def transition(*args)
  29.   origin_transition(*args)
  30.   GC.start if GC_CLEAR::GC_TRANSITION
  31. end
  32. def freeze
  33.   origin_freeze
  34.   GC.start if GC_CLEAR::GC_TRANSITION
  35. end
  36. end







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

点评

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-7-13 07:07:40 | 只看该作者
楼主请确认:地图上没有过多的并行处理事件

点评

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

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

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

点评

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

使用道具 举报

Lv1.梦旅人

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

评分

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

查看全部评分

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

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 12:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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