SFMLtexture 形状像播放器

SFMLtexture shaped like player

所以我一直在使用 SFML 库在 C++ 中制作自己的射击游戏。我找不到我遇到的问题的正确答案。 SFML 中是否有任何函数可以将玩家和敌人精灵设置为不是它们的纹理大小(只是矩形),而是源 png 文件的“彩色”区域,以便精灵与玩家的形状相匹配?

所以据我了解,您可能想创建一个与纹理具有相同边界的精灵,假设您的播放器是“彩色的”并且纹理中的其余部分是透明的。首先,您的纹理和精灵 (sf::Sprite) 将具有与图像 (png) 相同的边界和您设置的比例,具体取决于图像大小。然而,唯一会被绘制到屏幕上的是你的“彩色”部分,因为图像的其余部分的 alpha 值是 0(透明)。因此,实际上没有必要创建一个与其可见部分具有相同“边界”的精灵。除非,你正在处理碰撞。

如果您确实在处理碰撞,请查看称为像素完美碰撞检测的东西。 (SFML“相交”功能使用边界框检测,如果您正在使用的话。)

如果这不是您想要的答案,请详细说明问题,我会提供帮助:)