【问题标题】:How to lay one sprite on another in SFML?如何在 SFML 中将一个精灵放在另一个精灵上?
【发布时间】:2015-01-03 20:34:56
【问题描述】:

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

提前致谢

【问题讨论】:

  • 您需要您的播放器精灵是支持透明度的图片类型。然后让所有不是播放器的东西都透明。
  • 是的,有帮助,谢谢!

标签: c++ sprite sfml


【解决方案1】:

你有两个选择。

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

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

如果你走createMaskFromColor的路线,这里有一个sn-p:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多