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

Project1

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

[已经解决] 关于瞬移的制作方法

[复制链接]

Lv2.观梦者

梦石
0
星屑
505
在线时间
340 小时
注册时间
2008-8-13
帖子
526
跳转到指定楼层
1
发表于 2012-8-2 14:17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ProfesstionR 于 2012-8-3 16:03 编辑

RMXP里有moveto,但是moveto不能实现瞬移途中遇到障碍物就停下来的功能,
那么,如何实现直线瞬移中碰到障碍物就停在障碍物前的功能?
- - 你无视我就行了
Temperament can not be proud to imitate supreme.

Lv5.捕梦者

梦石
0
星屑
39021
在线时间
5719 小时
注册时间
2006-11-10
帖子
6619
2
发表于 2012-8-3 02:12:18 | 只看该作者
想实现这种效果有两种方法

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

第二种是伪瞬移, 就是利用强制移动来达到这个效果, 先更改图形为透明的,然后更改移动速度到最大,然后移动,勾上忽略不能移动的地方,然后把图形改回原样.达到这个效果~

点评

第二种我也试过,但是中间会有一段消失的时间,造成速度变慢,其实我只需要左右平移就够了,上下不需要考虑  发表于 2012-8-3 08:49
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
186 小时
注册时间
2012-5-8
帖子
987
3
发表于 2012-8-3 07:02:50 | 只看该作者
我也不知道该怎么实现...不知道这样可不可行。
在使用该技能的时候,触发事件。
强制性的向想要的地放移动。(这个可以灵活的运用,最好是脚本。)
但是这样貌似会很影响FPS的吧?

点评

移动如果是默认的那种仍然会有等待的时间  发表于 2012-8-3 08:50
看什么看,没看过大坑啊!
-------------------------炫翼-----------------------------
剧情:4%
地图:2%
系统:7%
优化:3%
脚本:25%
--------------------------炫翼----------------------------

      工作室


广告位招租....  
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
505
在线时间
340 小时
注册时间
2008-8-13
帖子
526
4
 楼主| 发表于 2012-8-3 16:09:05 | 只看该作者
谢谢你们,我自己研究出来了
  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
复制代码
- - 你无视我就行了
Temperament can not be proud to imitate supreme.
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 06:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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