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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1216
在线时间
145 小时
注册时间
2016-12-7
帖子
79
跳转到指定楼层
1
发表于 2017-10-4 22:33:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

刚学rgss,最近在看RGSS2的教程,光的圆周率写的,里面有个小习题:
1、 请同学们参照上面一节中对简单数据库输出的例子,自己尝试一下在游戏中写一个新的类,让它可以输出当前角色的信息和装备的
功能(就先用 print 方法吧),在游戏中使用事件来调用它,达到输出的目的哦(提示:使用 p $data_actors[1].name 就可以输出
角色 1 的名称,其它信息请在脚本入门→解读篇→数据库中查看哦).
想问下这个怎么做到啊,结合例子也只能在控制台里print出来,怎么调用到游戏里?

Lv3.寻梦者

梦石
0
星屑
1216
在线时间
145 小时
注册时间
2016-12-7
帖子
79
2
 楼主| 发表于 2017-10-4 23:13:17 | 只看该作者
自己顶一个……果然是太基础了吗……
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

3
发表于 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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1216
在线时间
145 小时
注册时间
2016-12-7
帖子
79
4
 楼主| 发表于 2017-10-5 03:52:51 | 只看该作者
非常感谢,话说教程里都没有你提及的这些要素……学起来好难。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

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

点评

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 20:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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