Project1
标题:
斜角触发事件
[打印本页]
作者:
89444640
时间:
2019-11-15 08:04
标题:
斜角触发事件
本帖最后由 89444640 于 2019-11-15 08:07 编辑
xp默认是四个朝向移动,但是走起来蛋疼,用了伪八方或真或真八方移动后,手感变好了但是有个一直没解决的问题,一旦斜角移动就不能在斜向接触的时候触发不能穿透的事件了,意思就是如果是挡路事件,无朝向需求,可以穿透,角色踩在上面就算的,在加上范围判定后,在斜角移动时可以触发,用地图跳转控制角色位置。或者只有一个元件可通行的狭窄通道,也可以。
那么在宽阔地图上,不能做成穿透的明雷,如何进行斜角范围触发呢?
伪八方的面相判断时,按先按下的方向去判断角色朝向,地图上显示的就是角色面相这个方向去走斜角,那么,能不能通过某种方法,判断这个朝向,然后进行与主角接触和与事件接触,的事件触发呢?
作者:
灯笼菜刀王
时间:
2019-11-15 10:30
本帖最后由 灯笼菜刀王 于 2019-11-15 10:33 编辑
可以啊, 单纯的加判定很简单 找到 Game_Character 3 这个脚本(你也一样是这里)
#--------------------------------------------------------------------------
# ● 向左下移动
#--------------------------------------------------------------------------
def move_lower_left
# 没有固定面向的场合
unless @direction_fix
# 朝向是右的情况下适合的面是左面、朝向是上的情况下适合的面是下面
@direction
= (
@direction
== 6 ? 4 :
@direction
== 8 ? 2 : @direction)
end
# 下→左、左→下 的通道可以通行的情况下
if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
(passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
# 更新坐标
@x -= 1
@y += 1
# 增加步数
increase_steps
end
if
@direction
== 4 and !passable?(@x-1, @y, 6)
check_event_trigger_touch(@x-1, @y)
end
if @direction == 2 and !passable?(@x, @y+1, 8)
check_event_trigger_touch(@x, @y+1)
end
end
加上这两句就可以了 @direction == 2 意思是 朝向为2的时候,也就是朝下, !passable?(@x, @y+1, 8) 表示 自身 坐标的X,Y+1,朝上 的位置不可通行的情况下(也就是自己下面一格不能从上面进去的时候)
check_event_trigger_touch(@x, @y+1) 这句是接触启动括号内坐标的事件,
这一段的意思就是 当朝向为2 and 自己下方一格不能从方向8进去的时候(也就是不能通行), 调用接触启动事件
下面的 右下 左上 右上 也加上同样的两句(要改一下朝向和坐标)
然后去体验下效果, 我只能提醒你, 结果可能和你想象的不一样
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1