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

Project1

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

[已经过期] 如何创建一个新的功能,并可以用到菜单的选项中呢?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2009-6-2
帖子
21
跳转到指定楼层
1
发表于 2015-10-8 08:08:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
例如,
功能作用:
功能=任务系统

命名为A:
任务系统=A

但是选项中的任务系统怎么关联这个任务系统呢?

点评

参考默认的菜单处理  发表于 2015-10-8 13:01
英俊的职业玩家

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2015-10-8 08:24:08 | 只看该作者
如果你这个新功能只是非常简单,用公共事件就能做出来的功能的话:
https://rpg.blue/home.php?mod=sp ... o=blog&id=14031
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

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

开拓者贵宾

3
发表于 2015-10-8 13:21:46 | 只看该作者
你也可以看看这里https://rpg.blue/thread-371698-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
4
发表于 2015-10-8 13:41:56 | 只看该作者
本帖最后由 墨凌羽 于 2015-10-8 08:37 编辑

rm制作选单大概分两部分,选单添加和事件绑定。
选单添加大概是这样(具体的可以通读Window_Command这个类)
#示例代码
add_command(Vocab::item,   :item,   main_commands_enabled)
#方法和参数说明
#     add_command(name, symbol, enabled = true, ext = nil)
#     name    : 指令名称
#     symbol  : 对应的符号
#     enabled : 有效状态的标志
#     ext     : 任意的扩展数据

而事件绑定大概如下
#示例代码
@command_window = Window_MenuCommand.new
@command_window.set_handler(:item,      method(:command_item))
#方法和参数说明
#     set_handler(symbol, method)
#     symbol : 要绑定的选单的symbol值
#     method : 设置的处理方法 (Method 实例)

先是实例化一个window对象,然后调用set_handler来进行事件绑定。第一个参数要和前边add_command里的第二个参数对应,第二个参数是一个Method对象(这个具体可以参考这里
选单添加一般是写在相应window类内部的
事件绑定则是在和该对象实例化的同一个地方
比如你打算给菜单界面左部添加选单,就先得在Window_MenuCommand类进行选单添加(具体的是写在该类的make_command_list方法里),然后在Scene_Menu里进行事件绑定(具体在该类的create_command_window方法里)。
代码示例(给菜单场景添加一个名为‘笔记’的选单,效果是会跳转到名为Note的场景)
RUBY 代码复制
  1. #Window_MenuCommand类 选单添加
  2. class Window_MenuCommand < Window_Command
  3.   alias :old_make_command_list :make_command_list
  4.   #注意,一般为了脚本兼容,不会直接写old_XXX这样的,最好是以脚本作者的名字加日期的格
  5.   #式如shitke_151008_make_command_list。alias具体可以参考F1中‘类定义与方法定义’部分
  6.   def make_command_list
  7.     old_make_command_list
  8.     add_command("笔记", :note, main_commands_enabled)
  9.   end
  10. end
  11. #Scene_Menu类 事件绑定
  12. class Scene_Menu < Scene_MenuBase
  13.   #这里没有同上边一样使用alias,主要是想更清晰的展示‘对象实例化——事件绑定’这一过程
  14.   def create_command_window
  15.     @command_window = Window_MenuCommand.new
  16.     @command_window.set_handler(:item,      method(:command_item))
  17.     @command_window.set_handler(:skill,     method(:command_personal))
  18.     @command_window.set_handler(:equip,     method(:command_personal))
  19.     @command_window.set_handler(:status,    method(:command_personal))
  20.     @command_window.set_handler(:formation, method(:command_formation))
  21.     @command_window.set_handler(:save,      method(:command_save))
  22.     @command_window.set_handler(:game_end,  method(:command_game_end))
  23.     @command_window.set_handler(:cancel,    method(:return_scene))
  24.     #对窗口对象Window_MenuCommand的实例command_window里的note选单进行事件绑定
  25.     @command_window.set_handler(:note,    method(:command_note))
  26.   end
  27.   #选单note按下键C(这个C指RMIuput模块的:c,具体包括键盘上的Space, Enter, Z三个按键)
  28.   #时执行的具体事件
  29.   def command_note
  30.     SceneManager.call(Scene_Note) #直接跳转到笔记场景
  31.   end
  32. end

P.S要想搞清楚这些最好还是去熟悉Window类(看F1)以及通读Window_Base、Window_Selectable、Window_Command这三个类。把这些搞清楚那么在RM里创建窗口亦或是选单都毫无问题和难度。
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 22:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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