设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2059|回复: 2
打印 上一主题 下一主题

[已经解决] ( • ̀ω•́ )能不能做到事件分别从X或Y轴接近主角呢?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1281
在线时间
6552 小时
注册时间
2010-12-30
帖子
8949
跳转到指定楼层
1
发表于 2014-7-17 18:58:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
(,,• ₃ •,,) 想做个酱紫的追逐戏,不是普通RM种跟着主角跑,
(,,• ₃ •,,) 主角被汽车追,所以车扭来扭曲不是很奇怪嘛?
(,,• ₃ •,,) 想做个车先运动的X轴平行于主角,然后Y轴距离缩短冲过来,
(,,• ₃ •,,) 或者Y轴慢慢垂直,X轴开始缩短冲过来,
(,,• ₃ •,,) 就是酱紫,不能理解的话……就不要理解了,一起坐等大触吖!

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-7-17 19:24:29 | 只看该作者
本帖最后由 恐惧剑刃 于 2014-7-18 10:38 编辑

示例 创建任意一个事件
移动路线中脚本 toward(nil, $game_player.y)  看看效果吧?主动接近主角的Y坐标

脚本有点小问题,习惯性把变量命名为 ax,ay 但下方需要的变量名称可不是这么写的~
  1. #==============================================================================
  2. # ■ Game_Character (分割定义 4)
  3. #------------------------------------------------------------------------------
  4. #  处理角色的类。本类作为 Game_Player 类与 Game_Event
  5. # 类的超级类使用。
  6. #==============================================================================

  7. class Game_Character
  8.   #--------------------------------------------------------------------------
  9.   # ● 接近
  10.   #--------------------------------------------------------------------------
  11.   # 使用方法 :
  12.   # 事件=>设置移动路线=>脚本=>输入=>toward(目标的X坐标, 目标的Y坐标)
  13.   # 可以单方向接近,只需把“目标的X坐标”或者“目标的Y坐标”传nil就可以
  14.   #--------------------------------------------------------------------------
  15.   # 目标的X既可以是主角也可以是事件甚至可以是纯坐标
  16.   # 主角的X坐标 $game_player.x
  17.   # 主角的Y坐标 $game_player.y
  18.   # 事件的X坐标 $game_map.events[事件的id].x
  19.   # 事件的T坐标 $game_map.events[事件的id].y
  20.   #--------------------------------------------------------------------------
  21.   def toward(x = nil, y = nil)
  22.     return if x == nil and y == nil
  23.     if x == nil
  24.       # 求坐标差
  25.       sy = @y - y
  26.       return if sy == 0
  27.       sy > 0 ? move_up : move_down
  28.     elsif y == nil
  29.       # 求坐标差
  30.       sx = @x - x
  31.       return if sx == 0
  32.       sx > 0 ? move_left : move_right
  33.     else
  34.       # 求坐标差
  35.       sx = @x - x
  36.       sy = @y - y
  37.       
  38.       # 绝对值
  39.       abs_sx = sx.abs
  40.       abs_sy = sy.abs
  41.       
  42.       return if abs_sx <= 1 and abs_sy <= 1
  43.       
  44.       # 横距离与纵距离相等的情况下
  45.       if abs_sx == abs_sy
  46.         # 随机将边数增加 1
  47.         rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  48.       end
  49.       # 横侧距离长的情况下
  50.       if abs_sx > abs_sy
  51.         # 左右方向优先。向主角移动
  52.         sx > 0 ? move_left : move_right
  53.         if not moving? and sy != 0
  54.           sy > 0 ? move_up : move_down
  55.         end
  56.       # 竖侧距离长的情况下
  57.       else
  58.         # 上下方向优先。向主角移动
  59.         sy > 0 ? move_up : move_down
  60.         if not moving? and sx != 0
  61.           sx > 0 ? move_left : move_right
  62.         end
  63.       end
  64.     end
  65.    
  66.    
  67.   end
  68. end
复制代码

点评

(。•ˇ‸ˇ•。)虽然很正确但是却还是不知道怎么使用的说  发表于 2014-7-17 19:45

评分

参与人数 2星屑 +166 收起 理由
︶ㄣ牛排ぶ + 100 认可答案
MeowSnow + 66 (ΦωΦ)多谢大触

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1281
在线时间
6552 小时
注册时间
2010-12-30
帖子
8949
3
 楼主| 发表于 2014-7-17 20:13:38 | 只看该作者
恐惧剑刃 发表于 2014-7-17 19:24
示例 创建任意一个事件
移动路线中脚本 toward(nil, $game_player.y)  看看效果吧?主动接近主角的Y坐标
...


(ノ°ο°)ノ 变成这个样子了

点评

(ΦωΦ)虽然不是很明白,明明之前也已经正常使用了的说  发表于 2014-7-18 10:48
脚本有个小问题如果没有校正就更新下吧~  发表于 2014-7-18 10:39
(ΦωΦ)能用就不改了,看着还帅气  发表于 2014-7-17 20:59
或许该改个名称比如把toward改为汉字——接近(其余一样)试试看会不会报错 至少我这里没错 --  发表于 2014-7-17 20:57
ヾ(@゜▽゜@)ノ貌似是因为没删空格,能用了,多谢大触!  发表于 2014-7-17 20:56
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 20:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表