Project1

标题: 条件分歧怎么判定本事件的位置=玩家的位置呢 [打印本页]

作者: 风雨流盼    时间: 2021-1-31 14:19
标题: 条件分歧怎么判定本事件的位置=玩家的位置呢
并行处理的事件,想在玩家迅速经过时触发

分别把玩家的X,Y坐标和事件的X,Y坐标代入变量,但不太稳,不能每次都触发事件

有什么好方法呢

用脚本是否能轻松解决呢
作者: alexncf125    时间: 2021-1-31 14:52
本帖最后由 alexncf125 于 2021-1-31 14:53 编辑

事件左下方的触发条件不就有「与玩家接触」么
作者: 风雨流盼    时间: 2021-1-31 14:56
本帖最后由 风雨流盼 于 2021-1-31 15:02 编辑
alexncf125 发表于 2021-1-31 14:52
事件左下方的触发条件不就有「与玩家接触」么


我想让事件并行处理,那就不能选与事件接触了

我自己写的方法是可以触发,但是如果按太快连着来就不太行了,可能是变量没跟上,所以想问下有没有脚本之类的稳定方法
作者: alexncf125    时间: 2021-1-31 15:20
本帖最后由 alexncf125 于 2021-1-31 15:22 编辑

条件分歧用
$game_player.real_x == $game_map.events[@event_id].real_x && $game_player.real_y == $game_map.events[@event_id].real_y

作者: 风雨流盼    时间: 2021-1-31 15:29
实际上刚刚用纯事件发现也可以达成

把玩家和事件的X,Y分别存入不同变量,然后都获取指定位置信息,这样效果不错
作者: KB.Driver    时间: 2021-1-31 15:31
用事件位置来判断的话是这样:
RUBY 代码复制
  1. ev=$game_map.events;$game_player.pos?(ev[事件编号].x,ev[事件编号].y)


如果不是用事件的位置来判断,会更简单:

RUBY 代码复制
  1. $game_player.pos?(x, y)

注意这里的x和y要改成地图上的位置。
作者: alexncf125    时间: 2021-1-31 16:07
KB.Driver 发表于 2021-1-31 15:31
用事件位置来判断的话是这样:

ev=$game_map.events;$game_player.pos?(ev[事件编号].x,ev[事件编号].y)


用的x和y
並行事件会被执行多次吧
作者: 风雨流盼    时间: 2021-1-31 16:38
本帖最后由 风雨流盼 于 2021-1-31 16:51 编辑
KB.Driver 发表于 2021-1-31 15:31
用事件位置来判断的话是这样:

ev=$game_map.events;$game_player.pos?(ev[事件编号].x,ev[事件编号].y)


嗯,也是一种方法,但是如果事件是一直在移动的,

或者要设置多个地图多个事件的话会变得很麻烦的样子

x被提醒了,再次发现自己对脚本啥的懂太少
作者: KB.Driver    时间: 2021-1-31 21:53
本帖最后由 KB.Driver 于 2021-1-31 22:08 编辑
alexncf125 发表于 2021-1-31 16:07
用的x和y
並行事件会被执行多次吧


你写的real_x和我写的x在执行多次这个问题上有什么本质的区别……





另外,real_x的值在经过移动后一直是一个浮点数,
从这个角度来说拿x而不是real_x来判断反而能够提高性能。
测试结果我放在下面了,浮点数和整数的比较所需要的时间比两个整数的比较要长。



作者: alexncf125    时间: 2021-1-31 22:05
本帖最后由 alexncf125 于 2021-1-31 22:12 编辑
KB.Driver 发表于 2021-1-31 21:53
编辑中……

[fold]


我表达的意思是, 可能LZ是想在「玩家行走时, 本事件的位置=玩家的位置 时」, 只执行一次事件的内容
我这边测试用x和y, 玩家行过固定的事件时, 会执行十多次
用real_x和real_y, 玩家行过固定的事件时, 只会执行一次
作者: ppspssss    时间: 2021-2-1 13:25
一个是用于储存实际位置的x/y (一格一格来算),事件是用这个判断 , 另一个是用于移动计算实际显示的real_x/y,  
x,y 由于是一格格移动,你移动的瞬间就断定你已经到了下一格, 并不是移动完才算你走到下一格




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