如何在 Phaser 3, Spine 中获取边界框的大小?

Posted

技术标签:

【中文标题】如何在 Phaser 3, Spine 中获取边界框的大小?【英文标题】:How to get size of bounding box in Phaser 3, Spine? 【发布时间】:2022-01-23 12:51:37 【问题描述】:

如果我写sprite.drawDebug = true,它将显示边界框。

Spine 2D 中的边界框

【问题讨论】:

请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:

根据您的具体需求,这或多或少会比较困难,因为这些数据不是以“用户友好”的方式公开的(据我所知)这里是link to the documentaiton

SpinePlugin 使用 sprite.drawDebug = true 标志来显示脊椎数据的许多不同部分。 在这个例子中你可以看到,这部分是如何划分的:https://phaser.io/examples/v3/view/spine/draw-debug-bounds#

使用按钮可以打开和关闭不同的部分

根据您需要哪组盒子,您必须访问数据,类似于插件本身。 (这里是第 9936 ~ 10095 行附近的 plugin source code 的链接)。数据应该在属性 sprite.skeleton 中,但你必须找到你真正需要的部分。

更新: 如果您使用物理并且物理边界框就足够了,例如在这个例子中:https://phaser.io/examples/v3/view/spine/arcade-physics-spine-body#

您可以使用image.body.widthimage.body.height 获取边界框的大小,也可以使用setSize 更改它。

【讨论】:

谢谢,目前还不行,但我会试试

以上是关于如何在 Phaser 3, Spine 中获取边界框的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取Phaser 3以输出最终分数

Spine之八——网格和自由变形(FFD)

如何在 Phaser 3 中启用单击数组中的单个项目并将每个项目显示在屏幕的不同部分?

如何获取 WinUI 3 桌面应用程序的屏幕边界?

Phaser.js 获取给定的无效 Phaser 状态对象

在 Phaser 3 中更改场景的问题