查看: 2822|回复: 14

[已经解决] 如何在游戏中写个新类,然后在游戏实用事件来调用它? ...

[复制链接]
梦石
0
星屑
1236
在线时间
147 小时
注册时间
2016-12-7
回帖
65
发表于 2017-10-4 22:33:26 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 wc3215410 于 2017-10-5 09:29 编辑

刚学rgss,最近在看RGSS2的教程,光的圆周率写的,里面有个小习题:
1、 请同学们参照上面一节中对简单数据库输出的例子,自己尝试一下在游戏中写一个新的类,让它可以输出当前角色的信息和装备的
功能(就先用 print 方法吧),在游戏中使用事件来调用它,达到输出的目的哦(提示:使用 p $data_actors[1].name 就可以输出
角色 1 的名称,其它信息请在脚本入门→解读篇→数据库中查看哦).
想问下这个怎么做到啊,结合例子也只能在控制台里print出来,怎么调用到游戏里?
梦石
0
星屑
1236
在线时间
147 小时
注册时间
2016-12-7
回帖
65
 楼主| 发表于 2017-10-4 23:13:17 | 显示全部楼层
自己顶一个……果然是太基础了吗……
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2017-10-5 01:10:23 | 显示全部楼层
你所定义的这个类实际上会以这个类的名称为一个全局变量在任何脚本中都可以访问到,所以直接用类名来获取就行了

举个栗子,你定义的类结构如下:

  1. class Example
  2.   def say_hello
  3.     p 'hello'
  4.   end
  5. end
复制代码

接着,你在事件指令的脚本中输入下面这段即可调用:
  1. a = Example.new
  2. a.say_hello
复制代码


或者,由于事件指令的脚本实际上的执行方式是在 Game_Interpreter 的一个实例内部执行字符串eval,所以我自己更喜欢这种方式:

  1. class Example
  2.   def say_hello
  3.     p 'hello'
  4.   end
  5. end

  6. class Game_Interpreter
  7.   def run_code
  8.     a = Example.new
  9.     a.say_hello
  10.   end
  11. end
复制代码


这样写完代码后,在事件指令的脚本中通过输入 run_code 即可调用

点评

就是我想让my_window.contents.draw_text(0, 0, 368, 20, “...”, 0)这段在游戏里和的显示和控制台里显示的循环一样能循环显示。  发表于 2017-10-5 22:23
比如:my_item = load_data("Data/Items.rvdata2") for i in 1..3 print "物品:#{my_item[i].name}\n 价格:#{my_item[i].price}G" end 这代码能赋入一个变量里吗  发表于 2017-10-5 22:21
迭代不是也有返回值吗?  发表于 2017-10-5 22:17
迭代是一个操作……和显示有什么关系……  发表于 2017-10-5 21:31
迭代呢?也能赋值到变量里吗,再用这方法显示出来可以吗?  发表于 2017-10-5 20:41

评分

参与人数 1赞 +1 收起 理由
wc3215410 + 1 认可答案

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
1236
在线时间
147 小时
注册时间
2016-12-7
回帖
65
 楼主| 发表于 2017-10-5 03:52:51 | 显示全部楼层
非常感谢,话说教程里都没有你提及的这些要素……学起来好难。
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2017-10-5 22:34:43 | 显示全部楼层
能赋值到变量里,也能再窗口中显示,但,绝对不要这么干,窗口显示文字是一个比较费时的操作,不断循环显示文字的代价是你的整个游戏会变得非常卡,特别是你这边给的迭代还涉及到了文件读取的操作,每秒操作60次硬盘基本上没什么机器受得了的

点评

感谢!  发表于 2017-10-6 07:52
好的!  发表于 2017-10-6 07:40

评分

参与人数 1赞 +1 收起 理由
wc3215410 + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部