Project1

标题: 昼夜系统 [打印本页]

作者: 黑米馒头    时间: 2014-9-6 15:36
标题: 昼夜系统
本帖最后由 黑米馒头 于 2014-9-6 17:43 编辑

在论坛上找了个昼夜系统,只显示早晨和晚上,我给加了个中午,貌似没效果,大神看下代码哪错了。

这是原脚本

# 昼夜     
$game_variables[1]=Graphics.frame_count / Graphics.frame_rate

if $game_variables[1] % 30 <= 10  

#  [1] 为变量
# % 30 <= 10  是说,1天30秒 10秒是晚上

  $game_screen.start_tone_change($day, 5) #早晨
else
  $game_screen.start_tone_change($night, 5) #夜晚
end

这是我改的

# 昼夜     
$game_variables[1]=Graphics.frame_count / Graphics.frame_rate

if $game_variables[1] % 30 <= 10

#  [1] 为变量
# % 30 <= 10  是说,1天30秒 10秒是晚上

  $game_screen.start_tone_change($day, 5) #早晨
elsif
  $game_screen.start_tone_change($gou, 5) #中午
elsif
  $game_screen.start_tone_change($night, 5) #夜晚
end


这样改貌似只看到早上和晚上的,中午看不见。。。

昼夜.rar

188.68 KB, 下载次数: 66


作者: 牛肉面    时间: 2014-9-6 16:49
条件没改,那当然不行了……
作者: chd114    时间: 2014-9-6 17:28
  1. if $game_variables[1] % 30 <= 10
  2. $game_screen.start_tone_change($day, 5) #早晨
  3. elsif $game_variables[1] % 30 <= 12
  4. $game_screen.start_tone_change($gou, 5) #中午
  5. else
  6. $game_screen.start_tone_change($night, 5) #夜晚
  7. end
复制代码
试试看
作者: 黑米馒头    时间: 2014-9-6 17:39
chd114 发表于 2014-9-6 17:28
试试看

不行。。

昼夜.rar

188.68 KB, 下载次数: 31


作者: chd114    时间: 2014-9-6 18:06
黑米馒头 发表于 2014-9-6 00:39
不行。。
  1. $game_variables[1]=Graphics.frame_count / Graphics.frame_rate
  2. if $game_variables[1] % 24 >= 18
  3.   $game_screen.start_tone_change($night, 5) #夜晚
  4. elsif $game_variables[1] % 24 >= 11
  5.   $game_screen.start_tone_change($gou, 5) #中午
  6. else
  7.   $game_screen.start_tone_change($day, 5) #早晨
  8. end  
复制代码
这样写···那个24我是改成24秒一天来测试的
作者: 黑米馒头    时间: 2014-9-6 18:26
chd114 发表于 2014-9-6 18:06
这样写···那个24我是改成24秒一天来测试的

貌似我改成这样怎么不行,早上 中午 晚上 各6秒,用你那样就可以。。
# 昼夜     
$game_variables[1]=Graphics.frame_count / Graphics.frame_rate
if $game_variables[1] % 18 >= 6
  $game_screen.start_tone_change($night, 3) #夜晚
elsif $game_variables[1] % 18 >= 6
  $game_screen.start_tone_change($gou, 3) #中午
else
  $game_screen.start_tone_change($day, 3) #早晨
end
作者: chd114    时间: 2014-9-6 18:28
黑米馒头 发表于 2014-9-6 01:26
貌似我改成这样怎么不行,早上 中午 晚上 各6秒,用你那样就可以。。
# 昼夜     
$game_variables[1]=Gr ...

条件分歧的数字···如果你这样弄的话
  1. if $game_variables[1] % 18 >= 12
  2.   $game_screen.start_tone_change($night, 3) #夜晚
  3. elsif $game_variables[1] % 18 >= 6
  4.   $game_screen.start_tone_change($gou, 3) #中午
  5. else
  6.   $game_screen.start_tone_change($day, 3) #早晨
  7. end
复制代码
这样才对吧···
作者: chd114    时间: 2014-9-6 18:39
  1. if $game_variables[1] % 18 <= 6
  2.   $game_screen.start_tone_change($day, 3) #早晨
  3. elsif $game_variables[1] % 18 <= 12
  4.   $game_screen.start_tone_change($gou, 3) #中午
  5. else
  6.   $game_screen.start_tone_change($night, 3) #夜晚
  7. end
复制代码
你也可以选择倒过来写···
作者: 黑米馒头    时间: 2014-9-6 19:10
chd114 发表于 2014-9-6 18:39
你也可以选择倒过来写···

嗯,刚才有人说了另一种方法,
case (Graphics.frame_count / Graphics.frame_rate)%6
when 0...2
$game_screen.start_tone_change($day, 1) #早晨
when 2...4
$game_screen.start_tone_change($gou, 1) #中午
when 4...6
$game_screen.start_tone_change($night, 1) #夜晚
end
这样看起来好像比较好点





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1