Project1

标题: 纯事件双人打怪 [打印本页]

作者: 九尾的百合伞    时间: 2017-7-26 19:02
标题: 纯事件双人打怪
玩家一WSAD移动   Q攻击
玩家二上下左右     0攻击
玩家1是近程  玩家2是远程(距离限制四格)
有那些错误的或者要改的地方帮忙看看,我想弄双人游戏。

QQ图片20170726185838.png (69.27 KB, 下载次数: 27)

QQ图片20170726185838.png

双人刷怪副本.zip

199.68 KB, 下载次数: 77


作者: 九尾的百合伞    时间: 2017-7-26 19:13
怎么弄事件自动接近事件啊?
作者: 鑫晴    时间: 2017-7-26 20:04



作者: 张咚咚    时间: 2017-7-26 20:07

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


RUBY 代码复制
  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 接近事件(ID)
  4.   #--------------------------------------------------------------------------
  5.   def move_toward_event(id)
  6.     # 求得与主角的坐标差
  7.     sx = @x - $game_map.events[id].x
  8.     sy = @y - $game_map.events[id].y
  9.     # 坐标相等情况下
  10.     if sx == 0 and sy == 0
  11.       return
  12.     end
  13.     # 求得差的绝对值
  14.     abs_sx = sx.abs
  15.     abs_sy = sy.abs
  16.     # 横距离与纵距离相等的情况下
  17.     if abs_sx == abs_sy
  18.       # 随机将边数增加 1
  19.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  20.     end
  21.     # 横侧距离长的情况下
  22.     if abs_sx > abs_sy
  23.       # 左右方向优先。向主角移动
  24.       sx > 0 ? move_left : move_right
  25.       if not moving? and sy != 0
  26.         sy > 0 ? move_up : move_down
  27.       end
  28.     # 竖侧距离长的情况下
  29.     else
  30.       # 上下方向优先。向主角移动
  31.       sy > 0 ? move_up : move_down
  32.       if not moving? and sx != 0
  33.         sx > 0 ? move_left : move_right
  34.       end
  35.     end
  36.   end
  37. end

作者: 九尾的百合伞    时间: 2017-7-26 20:52
张咚咚 发表于 2017-7-26 20:07
插入到main前面,在事件的移动路线里写上 move_toward_event(要接近的事件ID)

知道了,谢谢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1