Project1

标题: 关于瞬移的制作方法 [打印本页]

作者: ProfesstionR    时间: 2012-8-2 14:17
标题: 关于瞬移的制作方法
本帖最后由 ProfesstionR 于 2012-8-3 16:03 编辑

RMXP里有moveto,但是moveto不能实现瞬移途中遇到障碍物就停下来的功能,
那么,如何实现直线瞬移中碰到障碍物就停在障碍物前的功能?
dsu_plus_rewardpost_czw
作者: 灯笼菜刀王    时间: 2012-8-3 02:12
想实现这种效果有两种方法

一种是真瞬移, 即A点和B点之间有个C点障碍物就停在C点的算法, 这个要用到寻路算法, 目前我还没掌握,无法帮你

第二种是伪瞬移, 就是利用强制移动来达到这个效果, 先更改图形为透明的,然后更改移动速度到最大,然后移动,勾上忽略不能移动的地方,然后把图形改回原样.达到这个效果~
作者: LOVE丶莫颜    时间: 2012-8-3 07:02
我也不知道该怎么实现...不知道这样可不可行。
在使用该技能的时候,触发事件。
强制性的向想要的地放移动。(这个可以灵活的运用,最好是脚本。)
但是这样貌似会很影响FPS的吧?
作者: ProfesstionR    时间: 2012-8-3 16:09
谢谢你们,我自己研究出来了
  1. #==============================================================================
  2. # ■ Game_Character (瞬移)
  3. #------------------------------------------------------------------------------
  4. #  处理角色的类。本类作为 Game_Player 类与 Game_Event
  5. #   类的超级类使用。
  6. #==============================================================================
  7. class Game_Character
  8.   #--------------------------------------------------------------------------
  9.   # ● 瞬移
  10.   #     distance : 向前瞬移的距离
  11.   #--------------------------------------------------------------------------
  12.   def teleport(distance)
  13.     # 通行判定计算
  14.     pa = distance - 1
  15.     # 基础坐标
  16.     realmove = @x
  17.     # 面向左
  18.     if @direction == 4
  19.       # 循环处理计算目的地坐标
  20.       for i in 0..pa
  21.         # 可以通行的场合
  22.         if passable?(@x-i, @y, 4)
  23.           # 得出目的地坐标
  24.           realmove = @x-i-1
  25.         # 除此以外的场合
  26.         else
  27.           # 中断循环
  28.           break
  29.         end
  30.       end
  31.     else
  32.       # 循环处理计算目的地坐标
  33.       for i in 0..pa
  34.         # 可以通行的场合
  35.         if passable?(@x+i, @y, 6)
  36.           # 得出目的地坐标
  37.           realmove = @x+i+1
  38.         # 除此以外的场合
  39.         else
  40.           # 中断循环
  41.           break
  42.         end
  43.       end
  44.     end
  45.     # 传送至目的地坐标
  46.     moveto(realmove, @y)
  47.   end
  48. end
复制代码





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