如何在SFML中将一个精灵放在另一个精灵上?

时间:2015-01-03 20:34:57

标签: c++ sprite sfml

我想写自己的游戏,我从SFML库开始。现在我有一个小问题:我怎么能做这样的事情:我有一个背景精灵和玩家的精灵。但玩家的形象不是矩形,它更复杂。当我在另一个(同一个位置)上放置一个精灵时,我会在玩家的矩形中变成一些空白区域。我应该写什么来放置背景而不是空白?

提前致谢

1 个答案:

答案 0 :(得分:0)

您有2个选项。

  1. 正如@nvoigt在评论中所述,您只需使用具有Alpha通道的图像格式(如PNG)。然后在图像编辑器中手动制作所需的每个部分。

  2. 您可以使用sf::Image::createMaskFromColor方法。您只需指定一个显示为透明的颜色。

  3. 如果你走createMaskFromColor的路线,这是一个片段:

    sf::Image image;
    image.LoadFromFile("yourImage.bmp");
    image.CreateMaskFromColor(sf::Color(0,255,255)); // for example, Cyan
    
    // if you need that image into a texture
    sf::Texture texture;
    texture.LoadFromImage(image);
    
    // to use sprite
    sf::Sprite sprite;
    sprite.SetTexture(texture);