真•挖坑
以下引用zhong于2007-3-11 0:20:01的发言:
受教了~~~很详细啊~~记得你曾帮我解决过Scene_Title的问题~~感激ing~~~这个希望能继续下去,很想看看关于Scene_Battle的剖析~~~~除了场景类还会讲解其他类吗?
拥有类和方法是面向对象语言的一个典型特征
@command_window.dispose
@sprite.dispose
形如@sprite的变量是实例变量(以@开头),它的作用范围限于类的内部,
形如s1的变量是局部变量(小写字母或下划线开头,不能是保留字),它的作用范围限于方法的内部。
如果一个变量只有真假值时,可以简略的用if @变量名代替if @变量名 == true,用if !@变量名代替if @变量名 == false。
一切未经赋值的变量初始值都为nil(并不是0),
if @a
p 'a'
end
if !@a
p 'b'
end
@a = '派阿基亚'
if @a
p 'c'
end
实例变量直接有外部访问的方法.
局部变量可以通过闭包在其她地方访问.
大多有标记的变量未声明前初始值为nil,如果声明但没明确初始化RUBY会根据数据类型动态初始化,局部变量不声明或初始化前被当作无参数方法调用.
@command_window的dispose是调用祖父类同名方法将bitmap对象一同释放,而@sprite的dispose的释放仅是精灵,bitmap对象根据情况有可能垃圾回收,这是RUBY语言特有机制,但一般不建议被动的利用垃圾回收,一般生成对象时是很消耗资源,在做STG时用数组当做格纳库,bitmap对象一概不释放,反复重复利用,FPS消耗极低,这就是RM默认高速缓存存在的价值,以及菜单类把dispose放在退出的最后的原因。
以下引用亿万星辰于2007-3-11 12:41:58的发言:
这个也不要太要求了,很显然他的意思是
a_switch = true
你就可以通过
if a_switch
do_something
end
这样的句子来操作
以下引用美兽于2007-3-11 7:36:23的发言:
LZ慢慢挖吧,默认脚本有些地方还是相对复杂的,大略扫了一遍
@command_window与@sprite的dispose是不同的.
@command_window.dispose
@sprite.dispose
#——这个知道的orz 在此是简单地提醒要释放生成过的对象,还没有想到那么深的地方orz
这两句都有些问题
形如@sprite的变量是实例变量(以@开头),它的作用范围限于类的内部,
形如s1的变量是局部变量(小写字母或下划线开头,不能是保留字),它的作用范围限于方法的内部。
#——谨受教……这个是确实不知道,orz
这句混淆了true,false与真伪值的概念.
如果一个变量只有真假值时,可以简略的用if @变量名代替if @变量名 == true,用if !@变量名代替if @变量名 == false。
#——汗……那句确实没有在说真伪值的问题,偷懒少打了字……
真伪值的话,false和nil是伪值,其余的都是真值……这样吧{/fd}
这句话LZ应该找机会再验证下.
一切未经赋值的变量初始值都为nil(并不是0),
#——汗,这个确实搞错了,昨天才意识到$game_variables[x]都是0,而$game_swiches[x]初始值都是false。
然后……额,我那个“初始化”是想表达“声明”的意思orz 术语不过关……
#——汗,这个确实搞错了,昨天才意识到$game_variables[x]都是0,而$game_swiches[x]初始值都是false。
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |