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

Project1

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

[已经解决] 如何在函数名中加入变量?

[复制链接]

Lv2.观梦者

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
帖子
255
跳转到指定楼层
1
发表于 2015-2-28 22:10:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
以应对这样的问题
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此

Lv4.逐梦者 (版主)

无限の剣制

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

开拓者贵宾

2
发表于 2015-2-28 22:32:36 | 只看该作者
  1. def on_item_ok(id)
  2.   create_command(id)
  3.   @commadn.uppos(#........
  4.   #.......
  5. end
复制代码
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
帖子
255
3
 楼主| 发表于 2015-2-28 22:35:00 | 只看该作者
VIPArcher 发表于 2015-2-28 22:32

这样子在 method(:?)里就不能调用这些函数了。。
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

4
发表于 2015-2-28 23:31:03 | 只看该作者
本帖最后由 喵呜喵5 于 2015-2-28 23:36 编辑

两种思路,第一种,不使用 method 而是使用 Proc 闭包
  1. xxxx.set_handler( :new_game, Proc.new{ on_item_ok(参数) } )
复制代码
第二种,define_method
  1. class Scene_XXX
  2.   4.times do |i|
  3.     define_method "on_item_ok#{i}" do      
  4.       create_command(i)
  5.       XXXX
  6.     end
  7.   end
  8. end
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

5
发表于 2015-3-1 07:51:16 | 只看该作者
比起楼上两种我还是给出朴素一些的做法吧。

RUBY 代码复制
  1. class Scene_XXX
  2.   def on_item_ok(id)
  3.     create_command(id)
  4.     @commadn.uppos(#........
  5.     #.......
  6.   end
  7.  
  8.   def on_item_ok1; on_item_ok 1; end
  9.   def on_item_ok2; on_item_ok 2; end
  10.   # ...
  11.  
  12. end


or

RUBY 代码复制
  1. class Scene_XXX
  2.   def on_item_ok
  3.     create_command(@some_window.index)
  4.     @commadn.uppos(#........
  5.     #.......
  6.   end
  7. end

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
6
发表于 2015-3-1 10:38:32 | 只看该作者
我认为……他存在的问题应该是:怎么会有这么多的on_item_ok?我用的是通过current_symbol来确认指向的是哪个选项,这样就可以使用像2楼那样的方法了,也省下了on_item_ok_id这样的函数命名,只要1个按下ok确认的方法就可以了(当然,提前在选项那里做好add_command(test, handle))。

点评

嗯,一般用 index,或者 current_ext 之类的来确定  发表于 2015-3-15 09:29
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 08:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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