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

Project1

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

[已经过期] 关于用事件做射击效果时碰到的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
53 小时
注册时间
2013-2-16
帖子
24
跳转到指定楼层
1
发表于 2014-12-23 21:07:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我设定了子弹的地图X,Y座标

和怪物的地图X,Y座标

事件设定是子弹的XY座标与怪物XY座标重叠就让怪物受伤损血

并且子弹击中怪物后会消失

怪物用并行处理一直往玩家的方向移动



子弹攻击静止的怪物会有效果

但攻击移动的怪物时偶尔会出现子弹直接穿过怪物的情况发生

我想是怪物从A点移动到B点之间的动作时

系统无法判定子弹XY座标有无重叠到怪物XY座标

所以才会直接穿过

但这种问题我无法解决

有没有高手可替小的解惑呢?

Lv3.寻梦者

梦石
0
星屑
1244
在线时间
898 小时
注册时间
2014-12-4
帖子
379
2
发表于 2014-12-23 21:43:45 | 只看该作者
  1. #==============================================================================

  2. # ☆ Custom Adventure 踩踏/置物判断

  3. # -- Last Updated: 2014.6.3

  4. # -- by Moy

  5. # -- 转载请保留以上信息

  6. #==============================================================================

  7. #   本脚本判断一个在人物下层的事件是否被其他事件/角色踩踏

  8. #   对本事件使用只需要在分歧脚本中使用get_character(0).stepped_on?即可。

  9. #   判断别的事件请自行获取实例后使用。

  10. #==============================================================================

  11. # ■ Game_Event

  12. #==============================================================================

  13. class Game_Event < Game_Character

  14.   #--------------------------------------------------------------------------

  15.   # ● 判断本事件是否被其他事件/角色踩踏

  16.   #--------------------------------------------------------------------------

  17.   def stepped_on?

  18.     stepped_by_events?(@x,@y) #|| stepped_by_player_characters?(@x, @y)

  19.   end
  20.   
  21.   def stepped_on1?

  22.     stepped_by_events?(@x,@y) || stepped_by_player_characters?(@x, @y)

  23.   end

  24.   #--------------------------------------------------------------------------

  25.   # ● 判断某位置是否被其他事件踩踏

  26.   #--------------------------------------------------------------------------

  27.   def stepped_by_events?(x, y)

  28.     $game_map.events_xy_nt(x, y).any? do |event|

  29.       event.normal_priority?

  30.     end

  31.   end

  32.   #--------------------------------------------------------------------------

  33.   # ● 判断某位置是否被主控角色踩踏

  34.   #--------------------------------------------------------------------------

  35.   def stepped_by_player_characters?(x, y)

  36.     @priority_type == 0 && $game_player.collide?(x, y)

  37.   end

  38. end
复制代码
你可以用这个试一试 原地址我找不到了 设置子弹在下方 子弹被压到的话 开启开关 子弹消失 然后怪物扣血

点评

就是子弹在分歧条件中最后一页 最后一项脚本中 输入 get_character(0).stepped_on?  发表于 2014-12-24 12:30
不太懂该怎么设置T_T  发表于 2014-12-23 21:53
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
2315
在线时间
5539 小时
注册时间
2011-1-10
帖子
6619

青铜编剧史诗剧作家剧作品鉴家

3
发表于 2014-12-23 22:21:08 | 只看该作者
LZ您用的是脚本还是事件……

点评

最好还是附一下工程( ﹁ ﹁ ) ~→  发表于 2014-12-24 12:52
在面前开枪没问题的 但是只要怪物移动就 偶尔会发生子弹穿透情况 虽然不常发生 但还是会降低游玩品质..  发表于 2014-12-24 00:56
RM的坐标代入是根据理论坐标来代入的,也就是说NPC开始移动的那一刹那坐标就已经±1了,NPC移动的时候您在它前面开枪试试?  发表于 2014-12-23 22:57
事件 单纯用变量设定子弹与怪物的XY 判定双方是否重叠  发表于 2014-12-23 22:43
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-12-24 12:29:53 | 只看该作者
本帖最后由 taroxd 于 2014-12-24 12:34 编辑

可以在【分支条件-脚本】中通过 get_character(事件ID).moving? 来判断事件是否在移动中

用 get_character(事件ID).real_x 和 get_character(事件ID).real_y 获取事件在地图上真实的坐标(应该是浮点数)
用 get_character(事件ID).screen_x 和 get_character(事件ID).screen_y 获取事件在画面上的坐标
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-6 16:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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