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

Project1

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

[有事请教] 如何获得当前行动者在战场的初始位置?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
跳转到指定楼层
1
发表于 2024-1-31 18:18:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 catxiaolang 于 2024-1-31 18:38 编辑

如题,需要在战斗中动态判断,不是根据角色id,而是根据当前行动者

Lv4.逐梦者

梦石
0
星屑
5262
在线时间
424 小时
注册时间
2012-2-19
帖子
51
2
发表于 2024-2-1 09:03:10 | 只看该作者
  1. SceneManager._scene._spriteset._actorSprites[BattleManager._subject.index()]._homeX;
  2. SceneManager._scene._spriteset._actorSprites[BattleManager._subject.index()]._homeY;
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
3
 楼主| 发表于 2024-2-1 10:05:35 | 只看该作者



谢谢回复,
我试图粘贴两个脚本带入变量,
但是在战斗中执行后,变量并没有发生变化,
可以告诉我错在哪里吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
4
 楼主| 发表于 2024-2-1 10:07:43 | 只看该作者
本帖最后由 catxiaolang 于 2024-2-1 13:12 编辑




我创建了一个对照,结果通过技能运行公共事件,显示只有和home位置有关的脚本无法生效。



我尝试把执行此事件的角色放到第二位,结果对变量的改变也是0。


会不会是visu改变了什么导致这个方法失效了?

又或者,home对应的x和y对于每个角色的默认值都是0,
而不是用来代表每个角色在全局中的位置?

如果是这样的话,那么我从提出这个需求就搞错方向了。

但我不知道自己的猜测正确与否。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
5
 楼主| 发表于 2024-2-1 13:33:06 | 只看该作者

看来不是visu的原因,我尝试关掉再挨个打开插件去测试,但如果没有visu核心引擎的话它只会报错
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5262
在线时间
424 小时
注册时间
2012-2-19
帖子
51
6
发表于 2024-2-2 09:14:48 | 只看该作者
本帖最后由 sundeshuo 于 2024-2-2 09:20 编辑


需要在正确的时间使用才能获取到
首先BattleManager._subject.index()是当前行动的角色再战斗成员中的索引;
SceneManager._scene._spriteset._actorSprites是战斗场景中存放角色精灵的数组;
因此使用SceneManager._scene._spriteset._actorSprites[BattleManager._subject.index()]可以获得当前行动角色的战斗精灵,之后便可以获取
_homeX/_homeY起始点坐标
它不需要任何插件,以上都是rm新工程就可以使用的
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
7
 楼主| 发表于 2024-2-2 11:51:47 | 只看该作者
本帖最后由 catxiaolang 于 2024-2-2 12:01 编辑
sundeshuo 发表于 2024-2-2 09:14
需要在正确的时间使用才能获取到
首先BattleManager._subject.index()是当前行动的角色再战斗成员中的索引 ...


再次谢谢解答!

我创建了以下脚本,并且让角色在战斗中用技能执行。
但它仍然没有把角色home位置存入指定的变量。
而我自己找不到其中的逻辑问题(如果有请指出,我对于脚本完全是个菜鸟)。

$gameVariables.setValue(28, SceneManager._scene._spriteset._actorSprites[BattleManager._subject.index()]._homeX);
$gameVariables.setValue(29, SceneManager._scene._spriteset._actorSprites[BattleManager._subject.index()]._homeY);

然后我查看visu战斗核心的帮助文本时找到了下面两段表述,请教下有没有可能和它们有关系呢?(或者仅仅只是我上面哪里没写对?)

敌人的动画侧视战斗者支持
- 敌人现在可以使用侧视演员精灵代表自己!他们将像演员一样表现,并且甚至可以携带自己的一套武器用于物理攻击。这些必须通过注释标签设置。更多信息可以在注释标签部分找到。
- 由于精灵通常用于演员,因此对Sprite_Actor进行了一些更改,以便同时支持演员和敌人。这些更改对其他插件的影响应该很小。

战斗精灵更新
- 为了使本插件添加的新动作序列系统成为可能,对Sprite_Battler、Sprite_Actor和Sprite_Enemy中的许多功能进行了重写。这些更改使精灵能够在屏幕上任意移动、跳跃、浮动、更改可见性等等。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1126
在线时间
209 小时
注册时间
2023-7-14
帖子
86
8
 楼主| 发表于 2024-2-2 12:50:45 | 只看该作者
看来仍然不是插件的问题,因为我的写法导致新原版工程报错了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 21:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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