Project1

标题: 如何在游戏中写个新类,然后在游戏实用事件来调用它? ... [打印本页]

作者: wc3215410    时间: 2017-10-4 22:33
标题: 如何在游戏中写个新类,然后在游戏实用事件来调用它? ...
本帖最后由 wc3215410 于 2017-10-5 09:29 编辑

刚学rgss,最近在看RGSS2的教程,光的圆周率写的,里面有个小习题:
1、 请同学们参照上面一节中对简单数据库输出的例子,自己尝试一下在游戏中写一个新的类,让它可以输出当前角色的信息和装备的
功能(就先用 print 方法吧),在游戏中使用事件来调用它,达到输出的目的哦(提示:使用 p $data_actors[1].name 就可以输出
角色 1 的名称,其它信息请在脚本入门→解读篇→数据库中查看哦).
想问下这个怎么做到啊,结合例子也只能在控制台里print出来,怎么调用到游戏里?
作者: wc3215410    时间: 2017-10-4 23:13
自己顶一个……果然是太基础了吗……
作者: 喵呜喵5    时间: 2017-10-5 01:10
你所定义的这个类实际上会以这个类的名称为一个全局变量在任何脚本中都可以访问到,所以直接用类名来获取就行了

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

  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 即可调用
作者: wc3215410    时间: 2017-10-5 03:52
非常感谢,话说教程里都没有你提及的这些要素……学起来好难。
作者: 喵呜喵5    时间: 2017-10-5 22:34
能赋值到变量里,也能再窗口中显示,但,绝对不要这么干,窗口显示文字是一个比较费时的操作,不断循环显示文字的代价是你的整个游戏会变得非常卡,特别是你这边给的迭代还涉及到了文件读取的操作,每秒操作60次硬盘基本上没什么机器受得了的





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1