Project1

标题: 请问场所移动临时数据判断的问题 [打印本页]

作者: kvkv97    时间: 2014-11-21 16:38
标题: 请问场所移动临时数据判断的问题
本帖最后由 kvkv97 于 2014-11-21 16:40 编辑

问题1:

  1. class Interpreter
  2.   #-------------------------------------------------------------------
  3.   # ● 场所移动
  4.   #-------------------------------------------------------------------
  5.   def command_201
  6.     # 战斗中的情况
  7.     if $game_temp.in_battle
  8.       # 继续
  9.       return true
  10.     end
  11.     # 场所移动中、信息显示中、过渡处理中的情况下
  12.     if $game_temp.player_transferring or
  13.        $game_temp.message_window_showing or
  14.        $game_temp.transition_processing
  15.       # 结束
  16.       return false
  17.     end
  18.     # 设置场所移动标志
  19.     $game_temp.player_transferring = true
  20.     # 指定方法为 [直接指定] 的情况下
  21.     if @parameters[0] == 0
  22.       # 设置主角的移动目标
  23.       $game_temp.player_new_map_id = @parameters[1]
  24.       $game_temp.player_new_x = @parameters[2]
  25.       $game_temp.player_new_y = @parameters[3]
  26.       $game_temp.player_new_direction = @parameters[4]
  27.     # 指定方法为 [使用变量指定] 的情况下
  28.     else
  29.       # 设置主角的移动目标
  30.       $game_temp.player_new_map_id = $game_variables[@parameters[1]]
  31.       $game_temp.player_new_x = $game_variables[@parameters[2]]
  32.       $game_temp.player_new_y = $game_variables[@parameters[3]]
  33.       $game_temp.player_new_direction = @parameters[4]
  34.     end
  35.     # 推进索引
  36.     @index += 1
  37.     # 有淡入淡出的情况下
  38.     if @parameters[5] == 0
  39.       # 准备过渡
  40.       Graphics.freeze
  41.       # 设置过渡处理中标志
  42.       $game_temp.transition_processing = true
  43.       $game_temp.transition_name = ""
  44.     end
  45.     # 结束
  46.     return false
  47.   end
复制代码
问题:if $game_temp.player_transferring or
       $game_temp.message_window_showing or
       $game_temp.transition_processing
      return false
return false是返回false,那么返回false是什么意思?这个false是对哪个条件或者其它什么进行判断?有的直接写 return又是什么意思?
问题2:

  1. unless $game_temp.player_transferring
  2.         break
  3. end
复制代码
问题:场所移动是从一地图进入另一地图;$game_temp.player_transferring的值为假,条件为假就执行语句体,意思是主角不在场所移动中(值为假),就执行跳出循环语句;那么主角不在场所移动中跳出地图场景循环——跳出地图场景循环不就是主角无法移动了吗?——不合理啊,应该是条件为真的时候(也就是主角在场所移动中)才跳出循环,即是主角从一地图进入另外一地图才跳出循环。我这样理解对吗?为什么和RGSS脚本的意思不一样?





作者: lanyaolove    时间: 2014-11-21 18:32
$game_temp.player_transferring是是否正在过渡处理 过渡是个图像效果 为假则可以进行场所移动  注释写的很清楚
# 场所移动中、信息显示中、过渡处理中的情况下 则不处理场所移动 而主循环是一直不会跳出的  循环判断是否要进行场所移动 如果为true的话 则进行场所移动 如果为false的情况下则不进行场所移动
作者: kvkv97    时间: 2014-11-22 11:42
弱弱的问句,问题1的return false是返回false,那么返回false是什么意思?这个false是对哪个条件或者其它什么进行判断?有的直接写 return又是什么意思?

作者: lanyaolove    时间: 2014-11-22 11:54
kvkv97 发表于 2014-11-22 11:42
弱弱的问句,问题1的return false是返回false,那么返回false是什么意思?这个false是对哪个条件或者其它什 ...

break是中断当前循环 Scene_Map中也就是你上述的那段脚本 你的问题1也是在这里判断的 是在说 如果进行场所移动中 则不继续刷新当前地图的画面以及信息 过渡只是个画面效果 这是为了保证刷新不出错  而不是判断是否可以进行场所移动 我2L回复的不太正确




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