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

Project1

 找回密码
 注册会员
搜索

自己写的一个菜单界面的美化脚本

查看数: 4152 | 评论数: 6 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-8-4 14:18

正文摘要:

本帖最后由 xingxing991219 于 2015-8-4 14:21 编辑 嗯……第一次正儿八经地写一个脚本,第一次在发布区发布我的作品,心情还是很激动很忐忑的{:2_285:} 其实说这是我写的吧,也不完全算是,基本上还是用默认脚 ...

回复

xingxing991219 发表于 2015-8-6 14:47:00
RyanBern 发表于 2015-8-6 14:13
一般来讲,出现这种问题原因比较复杂,你这里脚本众多所以不太好判断。
一个可能的原因是内存不足(内存 ...


好吧,谢谢了。不过我试了你的方法,的确不行……我去找个别的菜单脚本直接用了
RyanBern 发表于 2015-8-6 14:13:21
xingxing991219 发表于 2015-8-6 13:53
你好,RB大神~~我遇到一个问题想请教您一下。我的游戏突然出现一个问题,就是当我打开游戏,第一次调出菜 ...

一般来讲,出现这种问题原因比较复杂,你这里脚本众多所以不太好判断。
一个可能的原因是内存不足(内存泄露),在你使用脚本生成状态窗口人物头像的时候,建立的方式为直接使用的Bitmap.new(path)的形式,使用之后没有释放导致内存不足。所以以这种方式建立的位图使用完毕后必须释放。或者也可以定义高速缓存:
RUBY 代码复制
  1. module RPG
  2.   module Cache
  3.     def self.head(filename)
  4.       self.load_bitmap("Graphics/Heads/", filename)
  5.     end
  6.   end
  7. end

使用的时候直接RPG::Cache.head(filename)即可,不需要释放。
不过我也无法肯定就是这个问题,或许也可能是别的脚本出现错误。
xingxing991219 发表于 2015-8-6 13:53:10
RyanBern 发表于 2015-8-4 22:23
用了5分钟的时间大致看了一下脚本,总体来说修改的效果还不错,在这里说说我发现的问题。
1. Window_Base#t ...

你好,RB大神~~我遇到一个问题想请教您一下。我的游戏突然出现一个问题,就是当我打开游戏,第一次调出菜单画面的时候,没有问题,但是当我关掉菜单画面,再按第三次Esc的时候,就出现了一个什么什么该内存不能为read。每次都是这样,然后我把每一个脚本都放到main下边试了一次,都不行,后来我干脆把我写的那个菜单美好的脚本删了,还是不行。于是我新建了一个工程,把除了script以外的所有data文件全拷进去,然后依次把我加的所有脚本加进去,加到我写的那个菜单美化的时候,又出现了同样的状况,然后我又删了这个脚本,结果可以了。我又回老工程里,又删了菜单美化,还是报错……请问应该如何解决?是不是我的脚本哪些地方有什么问题?
j296196585 发表于 2015-8-5 22:26:40
提示: 作者被禁止或删除 内容自动屏蔽
RyanBern 发表于 2015-8-4 22:23:04
用了5分钟的时间大致看了一下脚本,总体来说修改的效果还不错,在这里说说我发现的问题。
1. Window_Base#text_color里面好像把else的部分去掉了,希望补上。因为这个地方是为了防止传入无效参数而设定的,没有else会出问题。
2. SP条的描绘要考虑角色的maxsp是否为0,这点我在视频教学里面也有提到过。
3. 脚本的缩进是硬伤,看起来不舒服。
4. 貌似Window_Base里面无需改动的方法也被重新写了一遍,建议删掉。
5. @status_window.update在update中被调用了2次(当状态窗口被激活时),这个问题是致命的,不过你的状态窗口还好选项只有一个,如果像命令窗口一样有多个光标的话,按一下'↓'光标会移动两格。
6. Scene_Menu#update_status写的太啰嗦。具体来说,你是生成了四个独立的窗口,然后分别控制刷新。这个做法在默认脚本里面的Scene_File中有使用,但是刷新应该没有这么复杂,可以参考默认脚本的做法。
7. 你用了两个全局变量$cancel和$index来控制从别的场景返回时,Scene_Menu的不同响应。如果从特技等场景返回时,光标应该停在那个状态窗口上。这个设定很好,但是全局变量让我看着太不舒服了。请把它改成别的写法。
8. 推荐使用alias关键字(能用则用),以减小脚本冲突的可能。例如你的Scene_Skill#update_skill,就完全可以使用alias进行追加定义(如果你使用全局变量的话)。

以上就先总结这么多,看的并不是很仔细。此外鼓励楼主多多进行这样的脚本练习。

点评

可以定义Scene_Menu的initialize方法,将两个参数传进去。当然有关角色索引位置的建议传默认参数,否则兼容性不好。  发表于 2015-8-5 10:30
谢谢RB大神的点评,另外请教一下$cancel和$index这个如果不用全局变量的话应该怎么写呢  发表于 2015-8-5 09:24
xingxing991219 发表于 2015-8-4 14:25:52
据最新测试,在六个选项的文字前加一个空格可能能够略微提高美观程度= =本人不再修改脚本,如有需要大家可以自行添加~
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-13 11:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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