html - 将组添加到关注者 - Phaser 3
问题描述
我是 Phaser 3 的菜鸟,并试图在追随者中添加一个组(2 个精灵)。当我在“add.follower”处使用精灵时,该代码有效。
function create () {
var bola = this.add.group();
bola.create(0, 0, 'bola15');
bola.create(0, 0, 'bolasombra');
var line1 = new Phaser.Curves.Line([ 100, 100, 500, 100 ]);
var line2 = new Phaser.Curves.Line([ 500, 100, 500, 500 ]);
path1 = this.add.path();
path1.add(line1);
path1.add(line2);
var mover = this.add.follower(path1, 0, 0, bola);
mover.startFollow({
positionOnPath: true,
duration: 3000,
yoyo: false,
repeat: 0,
rotateToPath: false,
verticalAdjust: true
});
}
这就是我得到的:
任何解决方案,或其他方式来制作类似的东西?
编辑:
尝试使用“容器”并得到相同的结果:
bola = this.add.container(0,0);
bola1 = this.add.sprite(0,0,'bola15');
bola2 = this.add.sprite(0,0,'bolasombra');
bola.add(bola1);
bola.add(bola2);
解决方案
在当前状态下,PathFollower
设置为仅接收单个 GameObject。不幸的是,这意味着您必须将您的群组项目一一添加到关注者。您可以设置一个循环来遍历您的组项目并创建路径跟随者,如下所示:
for (var i = 0; i < bola.children.entries.length; i++) {
var mover = this.add.follower(path1, 0, 0, bola.children.entries[i].texture.key);
mover.startFollow({
positionOnPath: true,
duration: 3000,
yoyo: false,
repeat: 0,
rotateToPath: false,
verticalAdjust: true
});
}
查看Phaser 3 实验室中的这个示例,以查看另一个示例,如果组结构对您的游戏不重要,您可以如何使用具有相同路径的多个项目。
推荐阅读
- flutter - 文本中的空格 - Flutter
- c# - 为不同的页面添加水印
- ocr - OCR 字段识别
- sql-server - 逗号在 sqlalchemy 中使用 mssql+pyodbc 指定端口号
- c# - dotnet 5 CLI 在 centos 8 上不提供 https
- ruby-on-rails - 在其他两列之间创建一个新列(迁移)?
- mysql - DISTINCT 在 MYSQL 和 POSTGRESQL 中的工作方式不同
- mysql - MySQL 5.7 使用 GROUP BY 或 DATETIME 列的低性能
- javascript - 使用 Python/Flask 框架在 Javascript 中动态更改变量的首选方法
- java - 返回生成的键时,MySQL JDBC 驱动程序错误地将 bigint 报告为 BigInteger