查看: 93|回复: 0

[转载发布] 一个角色跟随另一个事件

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月四日(秋) | 显示全部楼层 |阅读模式
    脚本:
    1. class Game_Character  #--------------------------------------------------------------------------  # ● 接近事件  #  aaa  : 事件ID  #--------------------------------------------------------------------------  def move_toward_event(aaa)    # 求得与主角的坐标差    sx = @x - $game_map.events[aaa].x    sy = @y - $game_map.events[aaa].y    # 坐标相等情况下    if sx == 0 and sy == 0      return    end    # 求得差的绝对值    abs_sx = sx.abs    abs_sy = sy.abs    # 横距离与纵距离相等的情况下    if abs_sx == abs_sy      # 随机将边数增加 1      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1    end    # 横侧距离长的情况下    if abs_sx > abs_sy      # 左右方向优先。向主角移动      sx > 0 ? move_left : move_right      if not moving? and sy != 0        sy > 0 ? move_up : move_down      end    # 竖侧距离长的情况下    else      # 上下方向优先。向主角移动      sy > 0 ? move_up : move_down      if not moving? and sx != 0        sx > 0 ? move_left : move_right      end    end  end end复制代码
    复制代码
    方法:插入到Main前或去掉最后一行和第一行,置入Game_Character3最后一行前面。
    调用方法:设置移动路线:脚本:move_toward_event(事件ID)
    我测试了一下,在地图上弄一匹马,然后一个人来追马,用这个脚本就完成了效果。
    范例:

                 本帖来自P1论坛作者876加几,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=334228  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-17 16:38 , Processed in 0.047166 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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