Project1
标题: 三个问题:如何重载?如何继承?如何添置额外的... [打印本页]
作者: 克里喵子 时间: 2016-10-22 11:28
标题: 三个问题:如何重载?如何继承?如何添置额外的...
本帖最后由 克里喵子 于 2016-10-22 11:32 编辑
【小广告】昨天看到Steam打超级大折所以买了VX和XP,MV虽然五折但是过百了我没敢自剁双手……不过小伙伴们可以快入一下,VX18、XP15、MV105,现在不买更待何时?!!
咳咳……言归正传……
问题1:Steam上购买的VX和XP资源非常少,请问怎么添加额外的资源进来?
我现正在学习RGSS,现在在看类的部分。
根据文档的介绍我写了这么个代码:
class Person
attr_reader:name
attr_reader:age
def initialize
@name = "某人"
@age = 30
end
def initialize(name,age)
@name = name
@age = age
end
def age
@age
end
def name
@name
end
def print_name
msgbox @name
end
def speak(string)
print("#{@name}说:#{string}")
end
end
o = Person.new
print("name => #{o.name}\nage => 此人#{o.age}出头,有点地中海……\n")
p = Person.new("克里喵子",17)
print("name => #{p.name}\nage => 永远#{p.age}岁!\n")
p.speak("Hell-low~万恶的新世界!=_,=|||")
class Person
attr_reader:name
attr_reader:age
def initialize
@name = "某人"
@age = 30
end
def initialize(name,age)
@name = name
@age = age
end
def age
@age
end
def name
@name
end
def print_name
msgbox @name
end
def speak(string)
print("#{@name}说:#{string}")
end
end
o = Person.new
print("name => #{o.name}\nage => 此人#{o.age}出头,有点地中海……\n")
p = Person.new("克里喵子",17)
print("name => #{p.name}\nage => 永远#{p.age}岁!\n")
p.speak("Hell-low~万恶的新世界!=_,=|||")
RGSS提示错误:Person应该有两个参数,但是o只提供了一个……也就是说肯定不是我这么胡来的重载构造函数 ……
那么,问题1:怎么重载构造函数?
然后,我去掉了o的部分,删除了重载
class Person
attr_reader:name
attr_reader:age
def initialize(name,age)
@name = name
@age = age
end
def age
@age
end
def name
@name
end
def print_name
msgbox @name
end
def speak(string)
print("#{@name}说:#{string}")
end
end
p = Person.new("克里喵子",17)
print("name => #{p.name}\nage => 永远#{p.age}岁!\n")
p.speak("Hell-low~万恶的新世界!=_,=|||")
class SuperMan < Person
#公开区域
def say_nothing
print("#{@name}欲言又止。")
end
protected
#保护区域
private
#私有区
end
k = SuperKoori.new("克里超人","17")
print("name => #{k.name}\nage => 永远#{k.age}岁!\n")
p.speak("劳资是超人")
p.say_nothing
class Person
attr_reader:name
attr_reader:age
def initialize(name,age)
@name = name
@age = age
end
def age
@age
end
def name
@name
end
def print_name
msgbox @name
end
def speak(string)
print("#{@name}说:#{string}")
end
end
p = Person.new("克里喵子",17)
print("name => #{p.name}\nage => 永远#{p.age}岁!\n")
p.speak("Hell-low~万恶的新世界!=_,=|||")
class SuperMan < Person
#公开区域
def say_nothing
print("#{@name}欲言又止。")
end
protected
#保护区域
private
#私有区
end
k = SuperKoori.new("克里超人","17")
print("name => #{k.name}\nage => 永远#{k.age}岁!\n")
p.speak("劳资是超人")
p.say_nothing
RGSS返回错误:名称错误。未初始化Object::SuperKoori
呃…………Person的构造函数没有被继承么?……
然后我就在类里面加上了一个构造函数
def initialize(name,age)
@name = name
@age = age
end
def initialize(name,age)
@name = name
@age = age
end
问题依旧……
那么……重新规整一下我要提出的三个问题……
1、Steam上购买的XP、VX的资源很少,怎么添加资源丰富游戏场景?
2、如何在RGSS中重构一个类的构造函数?
3、如何在RGSS中继承父类的构造函数?
请各位前辈大侠们不吝赐教!(抱拳)
==================================================================
再加个广告:Steam上的RPGMaker不光便宜,还可以得到集换式卡牌哦(你真是够了)=_,=|||……
作者: sutao80216 时间: 2016-10-22 11:48
第二和第三个问题,楼主可以看看ruby的入门教程,看完自然就会了。
作者: 克里喵子 时间: 2016-10-22 12:44
也就是说,其实RUBY和RGSS是一类的语言么?
以前从来没接触过RUBY,看来为了不百花这30块钱,又要系统的学习一门新语言了啊……=_,=|||
作者: 喵呜喵5 时间: 2016-10-22 13:54
rgss = ruby game script system
作者: 唯道集虚 时间: 2016-10-26 19:46
Steam上的折扣确实很给力的,我也一度想入VA的说……
对于后两个问题,看起来楼主以前接触过其它高级语言嘛~那楼主可以跟着本站的教程简单地熟悉一下语法,多看看代码,应该能够比较快的入门了。
对于第一个问题,楼主可以看看授权素材推广计划:http://rmtemp.lofter.com/,里面有很多丰富的授权资源供楼主参考呢。
作者: taroxd 时间: 2016-10-27 21:07
本帖最后由 taroxd 于 2016-10-27 21:08 编辑
@age
1. Google 或喵呜喵5的授权素材推广计划
2. ruby 不支持重载,但支持可变参数和默认参数,你可以用这个方式来实现。
class Person
def initialize(name = "某人", age = 30)
@name = name
@age = age
end
end
class Person
def initialize(name = "某人", age = 30)
@name = name
@age = age
end
end
3. 除了第 38 行,我没看到代码里哪里出现了 SuperKoori…… 所以你的问题和你的代码不匹配
继承父类的方法是不用写额外代码的,包括 initialize。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |