| 本帖最后由 jiushiainilip19 于 2016-10-11 18:34 编辑 
 写我不会 但是做一些提示可以
 战斗画面是有坐标的
 
 screen_y screen_x screen_z
screen_y screen_x screen_z 
这三种
 在游戏中每一个角色都有一个固定的待机坐标,这些坐标在全动画战斗脚本中是这样写的
 
 class Game_Actor < Game_Battler  #--------------------------------------------------------------------------  # ● 取得战斗画面的 X 坐标  #--------------------------------------------------------------------------  def screen_x    # 返回计算后的队伍 X 坐标的排列顺序    if self.index != nil      #......................................................................      return self.index * 90 + 500      #......................................................................      else      return 0    end  end  #--------------------------------------------------------------------------  # ● 取得战斗画面的 Y 坐标  #--------------------------------------------------------------------------  def screen_y    #........................................................................    return 464 - self.index * 110 ;      #........................................................................  end  #--------------------------------------------------------------------------  # ● 取得战斗画面的 Z 坐标  #--------------------------------------------------------------------------  def screen_z    # 返回计算后的队伍 Z 坐标的排列顺序    if self.index != nil      return 4 - self.index    else      return 0    end  endend
class Game_Actor < Game_Battler 
  #-------------------------------------------------------------------------- 
  # ● 取得战斗画面的 X 坐标 
  #-------------------------------------------------------------------------- 
  def screen_x 
    # 返回计算后的队伍 X 坐标的排列顺序 
    if self.index != nil 
      #...................................................................... 
      return self.index * 90 + 500 
      #...................................................................... 
      else 
      return 0 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 取得战斗画面的 Y 坐标 
  #-------------------------------------------------------------------------- 
  def screen_y 
    #........................................................................ 
    return 464 - self.index * 110 ;   
    #........................................................................ 
  end 
  #-------------------------------------------------------------------------- 
  # ● 取得战斗画面的 Z 坐标 
  #-------------------------------------------------------------------------- 
  def screen_z 
    # 返回计算后的队伍 Z 坐标的排列顺序 
    if self.index != nil 
      return 4 - self.index 
    else 
      return 0 
    end 
  end 
end 
 看不懂没关系,但是可以从另一个方式去看他,我们把视线转移到Game_Battler 3中!
 
 然后在Game_Battler 3中P出来 例如:
 
 if hit_result == true      # 计算威力      power = skill.power + user.atk * skill.atk_f / 100      if power > 0        power -= self.pdef * skill.pdef_f / 200        power -= self.mdef * skill.mdef_f / 200        power = [power, 0].max      end      p user.screen_y  #P 出行动这角色的原点Y坐标  可以看下图!       if user.is_a?(Game_Actor)  && user.screen_y==354        power*=100000      p "站位好就是牛"      end  #我方角色在Y==354的时候威力增益100000 请看实际图片如下
if hit_result == true 
      # 计算威力 
      power = skill.power + user.atk * skill.atk_f / 100 
      if power > 0 
        power -= self.pdef * skill.pdef_f / 200 
        power -= self.mdef * skill.mdef_f / 200 
        power = [power, 0].max 
      end 
      p user.screen_y  #P 出行动这角色的原点Y坐标  可以看下图! 
  
      if user.is_a?(Game_Actor)  && user.screen_y==354 
        power*=100000 
      p "站位好就是牛" 
      end 
  #我方角色在Y==354的时候威力增益100000 请看实际图片如下 
结果出来了,这个在行动中的角色Y值在464
 
 好了,那我们就有办法治理他了   请看上面的代码
 
 好了 ,我会的只有这些了,高深的没辙了,当然想写出什么效果你可以说出来
 我试一试能够告诉你怎么达到(前提是我要会 - -!)
 
 |