Project1
标题:
关于用事件做射击效果时碰到的问题
[打印本页]
作者:
POPO70114
时间:
2014-12-23 21:07
标题:
关于用事件做射击效果时碰到的问题
我设定了子弹的地图X,Y座标
和怪物的地图X,Y座标
事件设定是子弹的XY座标与怪物XY座标重叠就让怪物受伤损血
并且子弹击中怪物后会消失
怪物用并行处理一直往玩家的方向移动
子弹攻击静止的怪物会有效果
但攻击移动的怪物时偶尔会出现子弹直接穿过怪物的情况发生
我想是怪物从A点移动到B点之间的动作时
系统无法判定子弹XY座标有无重叠到怪物XY座标
所以才会直接穿过
但这种问题我无法解决
有没有高手可替小的解惑呢?
作者:
翻滚牛宝宝
时间:
2014-12-23 21:43
#==============================================================================
# ☆ Custom Adventure 踩踏/置物判断
# -- Last Updated: 2014.6.3
# -- by Moy
# -- 转载请保留以上信息
#==============================================================================
# 本脚本判断一个在人物下层的事件是否被其他事件/角色踩踏
# 对本事件使用只需要在分歧脚本中使用get_character(0).stepped_on?即可。
# 判断别的事件请自行获取实例后使用。
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 判断本事件是否被其他事件/角色踩踏
#--------------------------------------------------------------------------
def stepped_on?
stepped_by_events?(@x,@y) #|| stepped_by_player_characters?(@x, @y)
end
def stepped_on1?
stepped_by_events?(@x,@y) || stepped_by_player_characters?(@x, @y)
end
#--------------------------------------------------------------------------
# ● 判断某位置是否被其他事件踩踏
#--------------------------------------------------------------------------
def stepped_by_events?(x, y)
$game_map.events_xy_nt(x, y).any? do |event|
event.normal_priority?
end
end
#--------------------------------------------------------------------------
# ● 判断某位置是否被主控角色踩踏
#--------------------------------------------------------------------------
def stepped_by_player_characters?(x, y)
@priority_type == 0 && $game_player.collide?(x, y)
end
end
复制代码
你可以用这个试一试 原地址我找不到了 设置子弹在下方 子弹被压到的话 开启开关 子弹消失 然后怪物扣血
作者:
H·H·Y
时间:
2014-12-23 22:21
LZ您用的是脚本还是事件……
作者:
taroxd
时间:
2014-12-24 12:29
本帖最后由 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 获取事件在画面上的坐标
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1