查看: 4782|回复: 4

[讨论] 纯事件双人打怪

[复制链接]
梦石
0
星屑
435
在线时间
150 小时
注册时间
2015-8-19
回帖
23
发表于 2017-7-26 19:02:43 | 显示全部楼层 |阅读模式

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

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

×
玩家一WSAD移动   Q攻击
玩家二上下左右     0攻击
玩家1是近程  玩家2是远程(距离限制四格)
有那些错误的或者要改的地方帮忙看看,我想弄双人游戏。
QQ图片20170726185838.png

双人刷怪副本.zip

199.68 KB, 下载次数: 77

梦石
0
星屑
435
在线时间
150 小时
注册时间
2015-8-19
回帖
23
 楼主| 发表于 2017-7-26 19:13:14 | 显示全部楼层
怎么弄事件自动接近事件啊?
回复

使用道具 举报

梦石
1
星屑
7574
在线时间
2650 小时
注册时间
2013-8-23
回帖
2152

开拓者

发表于 2017-7-26 20:04:36 | 显示全部楼层


回复

使用道具 举报

梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
发表于 2017-7-26 20:07:48 | 显示全部楼层

插入到main前面,在事件的移动路线里写上 move_toward_event(要接近的事件ID)


[pre lang="ruby"]class Game_Character
  #--------------------------------------------------------------------------
  # ● 接近事件(ID)
  #--------------------------------------------------------------------------
  def move_toward_event(id)
    # 求得与主角的坐标差
    sx = @x - $game_map.events[id].x
    sy = @y - $game_map.events[id].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[/pre]
回复

使用道具 举报

梦石
0
星屑
435
在线时间
150 小时
注册时间
2015-8-19
回帖
23
 楼主| 发表于 2017-7-26 20:52:18 | 显示全部楼层
张咚咚 发表于 2017-7-26 20:07
插入到main前面,在事件的移动路线里写上 move_toward_event(要接近的事件ID)

知道了,谢谢
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部