66RPG
本站首页
制作教程
文章作品
制作素材
原创游戏区
周边下载
本站论坛
 ※ 站内搜索
栏 目:
方 式:
关键词:
  
 ※ 教程分类
 RMXP 图文教学
 初级教学
 中级教学
 高级教学
 个人创意与研究
 RMXP 录像教学
 新人入门录像
 零散录像教学
 商业素材使用录像 ★
 周边教学
 美工 与 音乐
 RMXP 脚本发布
 游戏系统修改
 地图效果类
 战斗系统相关
 全新系统类
 API与高难度类
 RMVX 制作教学
 RMVX 初级教学
 RMVX 中级教程
 RMVX 高级教程
 RMVX 综合制作展
 ※ 无图目录 (按点击量横排序)


-- 66RPG全内容文字目录 --


 ※ 近期特色教学
事件以某点为中心随机移动 ( 66RPG, RPG MAKER XP教程 )
 本站首页→制作教程→RMVX 初级教学

事件以某点为中心随机移动


教学摘要:
  # 事件以某点为中心,随机移动。 
# 080727 by 柳之一
# 使用方法:本脚本粘贴在main之上,Game_Character之下。
# 在事件的移动规则类型选择自定义
# 移动路线里面,用脚本写上:
# move_type_toward(w,r)
# w,r就是你设定的中心
#例如: move_type_toward(10,10)就是npc在10,10这个点附近移动,开始的时候你的
# 事件可以是任意位置,但是一定确保能走到,你要是走到不能移动的点,
# 我就不说什么了

教程作者:柳之一
首发网址:点此进入本教学的原始帖
适宜用户:需要此效果
技术通用度:★★★
技术应用复杂度:40 (满分150分)
学习的理解难度:50 (满分150分)

 作者的话:

应求脚本

 教学正文:

#==============================================================================
# ■ Game_Character
#------------------------------------------------------------------------------
# 事件以某点为中心,随机移动。 
# 080727 by 柳之一
# 使用方法:本脚本粘贴在main之上,Game_Character之下。
#           在事件的移动规则类型选择自定义
#           移动路线里面,用脚本写上:
#            move_type_toward(w,r)
#            w,r就是你设定的中心
#例如: move_type_toward(10,10)就是npc在10,10这个点附近移动,开始的时候你的
#       事件可以是任意位置,但是一定确保能走到,你要是走到不能移动的点,
#        我就不说什么了
#==============================================================================

class Game_Character
 
 #--------------------------------------------------------------------------
 # ● 移动类型 : 接近x,y这一点
 #--------------------------------------------------------------------------
 def move_type_toward(w,r)
   sx = @x - w
   sy = @y - r
   if sx.abs + sy.abs >= 20
     move_random
   else
     case rand(6)
     when 0..3;  move_toward(w,r)
     when 4;     move_random
     when 5;     move_forward
     end
   end
 end
 
 def move_toward(wx,wy)
   sx = distance_x_from(wx)
   sy = distance_y_from(wy)
   if sx != 0 or sy != 0
     if sx.abs > sy.abs                  # 如果横向距离长
       sx > 0 ? move_left : move_right   # 左右方向优先
       if @move_failed and sy != 0
         sy > 0 ? move_up : move_down
       end
     else                                # 如果纵向距离等长
       sy > 0 ? move_up : move_down      # 上下方向优先
       if @move_failed and sx != 0
         sx > 0 ? move_left : move_right
       end
     end
   end
 end
 #--------------------------------------------------------------------------  #--------------------------------------------------------------------------
 def distance_x_from(r)
   sx = @x - r
   if $game_map.loop_horizontal?         # 是否横向循环
     if sx.abs > $game_map.width / 2     # 绝对值是否大于地图的一半?
       sx -= $game_map.width             # 引用地图的宽度
     end
   end
   return sx
 end
 #--------------------------------------------------------------------------
 #--------------------------------------------------------------------------
 def distance_y_from(w)
   sy = @y - w
   if $game_map.loop_vertical?           # 是否纵向循环
     if sy.abs > $game_map.height / 2    # 绝对值是否大于地图的一半?
       sy -= $game_map.height            # 引用地图的高度
     end
   end
   return sy
 end

end

 教学相关RGSS类/函数:

class Game_Character


关键字:RMVX 移动效果

发布日期:2008-8-7 18:40:10 点击量:1


 上一篇:战斗中机率反击
 下一篇:没有下一条记录
关于我们
支援本站
友情连接
站点目录
站内搜索



WWW.66RPG.COM,2005-2013 ^o^

备案序号:京ICP备05035415号



 
Web www.66rpg.com bbs.66rpg.com