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

Project1

 找回密码
 注册会员
搜索
楼主: RyanBern
打印 上一主题 下一主题

[原创发布] 【14.7.5第二版更新】RGSS1脚本入门参考

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2016-6-11
帖子
3
51
发表于 2016-7-8 21:59:06 | 只看该作者
大神求教
class Cuboid
  def initialize(number)
    @cuboid_number = number
  end
  def shuchu
    number = @cuboid_number
    print "长方体#{number}"
  end
end
cuboid_001 = Cuboid.new(001)
cuboid_001.shuchu
结果:长方体1
怎样才能得到结果:长方体001
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

52
 楼主| 发表于 2016-7-8 22:13:33 | 只看该作者
银羽凌云 发表于 2016-7-8 21:59
大神求教
class Cuboid
  def initialize(number)

001表示一个八进制数,因此不建议你这样给实变量赋值。

一个可行的办法是这样
[pre lang=Ruby]def count
  print sprintf("长方体%03d", @cuboid_number)
end[/pre]

然后调用cuboid_001 = Cuboid.new(1)
利用sprintf可以进行格式化输出。

至于第一个问题,我不会写。你可以考虑使用eval来计算表达式的值。
name='xiaoming'
eval name+'.name = "小红"'
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20915
在线时间
9331 小时
注册时间
2012-6-19
帖子
7105

开拓者短篇九导演组冠军

53
发表于 2016-7-8 22:37:16 | 只看该作者
本帖最后由 喵呜喵5 于 2016-7-8 22:39 编辑
银羽凌云 发表于 2016-7-8 19:03
大神求教
class Person
  attr_accessor:name,:sex,:age


没有任何正常的做法能够实现你所希望的效果,因为 Ruby 是动态类型的,所以和 C 语言等静态类型语言不同下面这段代码执行时不会报错
  1. a = 1
  2. a = "hello"
复制代码

而也正是因为Ruby是动态类型的,赋值操作实际上是传递一个引用,上面这段代码中,a=1时,a是一个指向1的值,a="hello"时,a是一个指向hello的值,a 并不是一个具体的数值,而更像是某一个具体数值的一个“外号”或者“别名”

所以,在下面这段代码中,你会看到一个奇怪但符合这一规则的结果
  1. class Person
  2.   attr_accessor :name,:nickname
  3.   def initialize(name,nickname)
  4.     @name = name
  5.     @nickname = nickname
  6.   end
  7. end
  8. xiaoming = Person.new("小明","xiaoming")
  9. xiaoming2 = xiaoming
  10. xiaoming2.name = "小明明"
  11. print xiaoming.name
复制代码

修改 xiaoming2 的名字时,xiaoming 的名字也跟着发生改变了

不论是 xiaoming 还是 xiaoming2,他们都只是别人给 Person("小明") 起的一个外号,有些外号是你直接起了告诉小明的(@nickname),有些外号是你背地里偷偷起的(xiaoming2 = xiaoming),
直接起的外号小明知道,起外号的你也知道,你提到这个外号便知道说的是小明,你问小明他有什么外号他也会告诉你
背地里偷偷起的外号你自己知道,提到这个外号也知道说的是小明,但是你问小明知不知道这个外号时,小明自然就懵逼了


另外,实际写代码过程中一般不会出现真的需要获取小明外号的情况





评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 触瞎

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
881
在线时间
7 小时
注册时间
2017-1-19
帖子
1
54
发表于 2017-1-21 19:29:50 | 只看该作者
本帖最后由 zwlstc109 于 2017-1-21 19:41 编辑

支持下
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4314
在线时间
1029 小时
注册时间
2016-5-19
帖子
253
55
发表于 2017-4-20 10:23:07 | 只看该作者
版主大大,请问我看完了第四章节就能把战斗菜单改成新仙剑奇侠传那样了吗?

点评

看完窗口和场景才(有可能)可以。  发表于 2017-4-20 21:19
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
287
在线时间
274 小时
注册时间
2010-5-30
帖子
44

开拓者

56
发表于 2018-3-6 14:47:33 | 只看该作者
版主大大你好,想请教一个问题。我照着这个帖子写完了真实商店,虽然功能基本实现了,但是商店里的数据没法存档,毕竟真实商店的库存和玩家操作有关。数据写在了$game_visualshop数组里面,如果在Scene_Title里面初始化就没法保存了,不知道改怎么写才能让数据保存下来。
如果版主大大看到了,希望能指点一下(跪),非常感谢版主大大写了这个教程,学到了很多,终于能看懂默认脚本了。

ps:不知道算不算挖坟啊,但是没权限发消息对不起((
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

57
 楼主| 发表于 2018-3-7 09:11:09 | 只看该作者
tsukishinu 发表于 2018-3-6 14:47
版主大大你好,想请教一个问题。我照着这个帖子写完了真实商店,虽然功能基本实现了,但是商店里的数据没法 ...

一个比较方便的做法是将真实商店变成 $game_system 对象里面的一个实变量。因为 $game_system 这个对象是可以自动存储的,所以以它为载体存储额外对象是个重要的技巧。

代码只需要添加:
RUBY 代码复制
  1. class Game_System
  2.   attr_accessor :visualshop
  3. end


而后在生成真实商店的时候使用 $game_system.visualshop = Game_VisualShop.new(args) 即可
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
287
在线时间
274 小时
注册时间
2010-5-30
帖子
44

开拓者

58
发表于 2018-3-7 16:36:04 | 只看该作者
RyanBern 发表于 2018-3-7 09:11
一个比较方便的做法是将真实商店变成 $game_system 对象里面的一个实变量。因为 $game_system 这个对象是 ...

改完可以存储了=w=谢谢版主大大!看起来$game_system里面可以塞好多东西……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4299
在线时间
407 小时
注册时间
2016-5-11
帖子
140
59
发表于 2023-5-4 12:14:07 | 只看该作者
教程看完了,学会了P函数
开玩笑的,感谢楼主和各位大神,留名支持一下
这不算挖坟吧。

点评

挖出RB10年前的黑历史了  发表于 2023-5-5 20:23
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 12:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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