Project1
标题: 如何获取rand随机数的数值? [打印本页]
作者: 美丽晨露 时间: 2013-9-24 23:18
标题: 如何获取rand随机数的数值?
# 隨機化BGM
randbgm = rand(6)
case randbgm
when 0
Audio.bgm_play("Audio/BGM/1")
when 1
Audio.bgm_play("Audio/BGM/2")
when 2
Audio.bgm_play("Audio/BGM/3")
when 3
Audio.bgm_play("Audio/BGM/4")
when 4
Audio.bgm_play("Audio/BGM/5")
when 5
Audio.bgm_play("Audio/BGM/6")
end
# 隨機化BGM
randbgm = rand(6)
case randbgm
when 0
Audio.bgm_play("Audio/BGM/1")
when 1
Audio.bgm_play("Audio/BGM/2")
when 2
Audio.bgm_play("Audio/BGM/3")
when 3
Audio.bgm_play("Audio/BGM/4")
when 4
Audio.bgm_play("Audio/BGM/5")
when 5
Audio.bgm_play("Audio/BGM/6")
end
之后写的脚本如何获取rand的数值?
即是直接使用when语句,不要二次rand随机数了。
作者: cinderelmini 时间: 2013-9-24 23:35
本帖最后由 cinderelmini 于 2013-9-24 23:38 编辑
# 隨機化BGM
@randbgm = rand(6)
case @randbgm
when 0
Audio.bgm_play("Audio/BGM/1")
when 1
Audio.bgm_play("Audio/BGM/2")
when 2
Audio.bgm_play("Audio/BGM/3")
when 3
Audio.bgm_play("Audio/BGM/4")
when 4
Audio.bgm_play("Audio/BGM/5")
when 5
Audio.bgm_play("Audio/BGM/6")
end
# 隨機化BGM
@randbgm = rand(6)
case @randbgm
when 0
Audio.bgm_play("Audio/BGM/1")
when 1
Audio.bgm_play("Audio/BGM/2")
when 2
Audio.bgm_play("Audio/BGM/3")
when 3
Audio.bgm_play("Audio/BGM/4")
when 4
Audio.bgm_play("Audio/BGM/5")
when 5
Audio.bgm_play("Audio/BGM/6")
end
如果是在同一个class里面的话~
就:
把randbgm改成@randbgm
之后也都在前面加上@就是了~
也就是说~
@randbgm = rand(6)
只需要写一次~
以后只需要在使用的时候写
case @randbgm
就是了~
作者: 美丽晨露 时间: 2013-9-24 23:36
cinderelmini 发表于 2013-9-24 23:35
# 隨機化BGM
randbgm = rand(6)
case randbgm
这样做的话,之后获取的数值跟之前的数值一样吗?
如果不是在class内的又该怎么做?
作者: cinderelmini 时间: 2013-9-24 23:41
本帖最后由 cinderelmini 于 2013-9-25 00:01 编辑
美丽晨露 发表于 2013-9-24 23:36
这样做的话,之后获取的数值跟之前的数值一样吗?
如果不是在class内的又该怎么做? ...
啊。。我更新了一下脚本内容。。是@randbgm~
如果不是在同个class里的话~
一般用公开变量吧:
attr_accessor :xxxx
xxxx是个变量名~
在本class里面可以用@xxxx赋值~
在其他class里面的话~
必须先调用本class~
比如某窗口:@a_window = Window_Base.new
这样~
然后使用@a_window里面的公开变量的话~
就用@a_window.xxxx就可以了~
如果觉得麻烦的话~
直接用全局变量$xxxx =
就是了~
-------------------------------------------------------
如果要重置一个变量的话~
可以在同个class里写一个函数:
def refresh_rand
@randbgm = rand(6)
end
def refresh_rand
@randbgm = rand(6)
end
然后要重置的时候直接用:refresh_rand
外部用的话就用:.refresh_rand
作者: 芯☆淡茹水 时间: 2013-9-25 08:25
随机音乐啊,也可以很简单的弄- def randbgm
- n = (rand (6)).to_s
- Audio.bgm_play("Audio/BGM/" + n)
- end
复制代码 调用的时候,如果在同一个类里,直接 randbgm 。如果在不同类,比如上面定义在 Game_System 里,在外面调用就写:$game_system.randbgm 。
就是直接播放随机音乐了。
作者: 恐惧剑刃 时间: 2013-9-25 21:37
本帖最后由 恋′挂机 于 2013-9-25 21:38 编辑
变量没搞清楚吧?
@实例变量
一般说法是:在方法中通用的变量
实例变量与临时变量(也就是你用的randbgm,这个被称作临时变量)
先解释下临时变量吧,顾名思义,只是临时的,不能在方法或类中共享。
(临时变量)仅限同一个方法内部使用
实例变量我感觉我说的不是很准确,
我的解释:
在同一类中可以在所有方法中通用的变量称为实例变量
就是说,你之前那个随机在main里,现在想在update里获取这个值需要带@
因为@可以在所有方法中通用(main、update就是同一类中的不同方法)
说白了,这些变量其实就是使用范围不同而已。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |