使用精灵时出现问题,角色精灵有额外的间距。

huangapple go评论68阅读模式
英文:

Issue using sprite, extra margin in character sprite

问题

使用Matter物理引擎在Phaser.js中加载玩家角色时,会出现额外的边距。是否可以在Phaser.js中移除它,还是需要直接更新图像。

英文:

when i load player character in Phaser.js using matter physics there's a extra margin. Is there a way to remove it using Phaser.js or i will need to update the image directly.

使用精灵时出现问题,角色精灵有额外的间距。

答案1

得分: 1

如果你只想改变大小,因为物理碰撞,你可以简单地使用 Body 对象的 setSize 函数。(文档链接)

同时,使用 setOffset 可以将碰撞框移动到正确的位置。(文档链接)

player.body.setSize(10,10); 
player.body.setOffset(5, 0);

> 在这里 你可以找到一个官方示例,其中一个静态物体的碰撞框被扩大,使用了相同的函数。

英文:

If you just want to change the size, because of physics collisions, you can simply use the function setSize of the Body object. (link to the documentation)

And with setOffset you can move the collision box, to the correct position.
(link to the documentation)

player.body.setSize(10,10); 
player.body.setOffset(5, 0);

> Here you can find an official example with a static body, where the collision box is been made larger, with the same function.

答案2

得分: 0

感谢winner_joiner的帮助。

对于Arcade物理引擎

要裁剪精灵的碰撞框,您可以使用 player.body.setSize(10,10);player.body.setOffset(5, 0);

对于Matter物理引擎

使用 setBody({width:10, height:10}),或者 setRectangle

最终结果

使用 setBody({width:10, height:10})
使用精灵时出现问题,角色精灵有额外的间距。

英文:

thanks to winner_joiner, for the help

For Arcade phisics

To crop the hit box of a sprite you can use the player.body.setSize(10,10); or player.body.setOffset(5, 0);

For Matter phisics

Use setBody({width:10, height:10}), or setRectangle

Final result

using setBody({width:10, height:10})
使用精灵时出现问题,角色精灵有额外的间距。

huangapple
  • 本文由 发表于 2023年3月23日 09:06:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/75818472.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定