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

Project1

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

[已经解决] 条件分歧怎么判定本事件的位置=玩家的位置呢

[复制链接]

Lv2.观梦者

梦石
0
星屑
896
在线时间
147 小时
注册时间
2020-11-10
帖子
43
跳转到指定楼层
1
发表于 2021-1-31 14:19:33 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
并行处理的事件,想在玩家迅速经过时触发

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

有什么好方法呢

用脚本是否能轻松解决呢

Lv4.逐梦者

梦石
0
星屑
14630
在线时间
2165 小时
注册时间
2016-9-20
帖子
861
11
发表于 2021-2-1 13:25:06 | 只看该作者
一个是用于储存实际位置的x/y (一格一格来算),事件是用这个判断 , 另一个是用于移动计算实际显示的real_x/y,  
x,y 由于是一格格移动,你移动的瞬间就断定你已经到了下一格, 并不是移动完才算你走到下一格

点评

事件能做很多东西 , 以前我也是全事件, 要看事件能做多少东西, 就看你怎么配搭 , 不能单看脚本能做多东西就否定事件  发表于 2021-2-1 14:44

评分

参与人数 1+1 收起 理由
风雨流盼 + 1 嗯,感觉纯事件很多事情都不太好做到,懂脚.

查看全部评分

贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26449
在线时间
5317 小时
注册时间
2016-3-8
帖子
1657
10
发表于 2021-1-31 22:05:03 | 只看该作者
本帖最后由 alexncf125 于 2021-1-31 22:12 编辑


我表达的意思是, 可能LZ是想在「玩家行走时, 本事件的位置=玩家的位置 时」, 只执行一次事件的内容
我这边测试用x和y, 玩家行过固定的事件时, 会执行十多次
用real_x和real_y, 玩家行过固定的事件时, 只会执行一次

点评

话说大大现在有没有空, 能私下QQ讨教两三个问题么?  发表于 2021-1-31 22:17
是我说得不清楚, 讓大大误解了, 我才抱歉~  发表于 2021-1-31 22:15
抱歉,我以为你说的是方法判断的次数。如果是严格执行一次的话,确实你的写法更符合要求。  发表于 2021-1-31 22:09
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39540
在线时间
1919 小时
注册时间
2010-11-14
帖子
3319

R考场第七期纪念奖

9
发表于 2021-1-31 21:53:49 | 只看该作者
本帖最后由 KB.Driver 于 2021-1-31 22:08 编辑
alexncf125 发表于 2021-1-31 16:07
用的x和y
並行事件会被执行多次吧


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





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


用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
896
在线时间
147 小时
注册时间
2020-11-10
帖子
43
8
 楼主| 发表于 2021-1-31 16:38:20 | 只看该作者
本帖最后由 风雨流盼 于 2021-1-31 16:51 编辑
KB.Driver 发表于 2021-1-31 15:31
用事件位置来判断的话是这样:

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


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

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

x被提醒了,再次发现自己对脚本啥的懂太少

点评

提提你~@event_id 指本事件的编号  发表于 2021-1-31 16:44
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26449
在线时间
5317 小时
注册时间
2016-3-8
帖子
1657
7
发表于 2021-1-31 16:07:43 | 只看该作者
KB.Driver 发表于 2021-1-31 15:31
用事件位置来判断的话是这样:

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


用的x和y
並行事件会被执行多次吧
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39540
在线时间
1919 小时
注册时间
2010-11-14
帖子
3319

R考场第七期纪念奖

6
发表于 2021-1-31 15:31:53 | 只看该作者
用事件位置来判断的话是这样:
RUBY 代码复制
  1. ev=$game_map.events;$game_player.pos?(ev[事件编号].x,ev[事件编号].y)


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

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

注意这里的x和y要改成地图上的位置。
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
896
在线时间
147 小时
注册时间
2020-11-10
帖子
43
5
 楼主| 发表于 2021-1-31 15:29:41 | 只看该作者
实际上刚刚用纯事件发现也可以达成

把玩家和事件的X,Y分别存入不同变量,然后都获取指定位置信息,这样效果不错
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26449
在线时间
5317 小时
注册时间
2016-3-8
帖子
1657
4
发表于 2021-1-31 15:20:44 | 只看该作者
本帖最后由 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

评分

参与人数 1+1 收起 理由
风雨流盼 + 1 感谢回答,应该可行

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
896
在线时间
147 小时
注册时间
2020-11-10
帖子
43
3
 楼主| 发表于 2021-1-31 14:56:15 | 只看该作者
本帖最后由 风雨流盼 于 2021-1-31 15:02 编辑
alexncf125 发表于 2021-1-31 14:52
事件左下方的触发条件不就有「与玩家接触」么


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

我自己写的方法是可以触发,但是如果按太快连着来就不太行了,可能是变量没跟上,所以想问下有没有脚本之类的稳定方法
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-20 17:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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