1

だから私はこのようなタイルセットを手に入れました:タイルセット

SFMLでタイルから1つのタイルのみをロードするにはどうすればよいですか?

4

1 に答える 1

6

画像をテクスチャにロードし( SFML1.6を使用している場合sf::ImageまたはSFML2.0をsf::Texture使用している場合)、スプライトのサブレクを設定します。このようなもの(SFML 2.0を使用):

sf::Texture texture;
texture.loadFromFile("someTexture.png"); // just load the image into a texture

sf::IntRect subRect;
subRect.left = 100; // of course, you'll have to fill it in with the right values...
subRect.top = 175;
subRect.width = 80;
subrect.height = 90;

sf::Sprite sprite(texture, subRect);

// If you ever need to change the sub-rect, use this:
sprite.setTextureRect(someOtherSubRect);

SFML 1.6の場合、次のようになります。

sf::Image image;
image.LoadFromFile("someTexture.png"); // just load the image into a texture

sf::IntRect subRect;
subRect.Left = 100; // of course, you'll have to fill it in with the right values...
subRect.Top = 175;
subRect.Right = 180;
subrect.Bottom = 265;

sf::Sprite sprite(image);
sprite.SetSubRect(subRect);

スプライトの使用方法によっては、画像/テクスチャのスムージングを無効にすることができることに注意してください。スムージングを無効にしないと、エッジがにじむ可能性があります(texture.setSmooth(false)またはなどimage.SetSmooth(false))。

于 2012-04-26T20:48:01.610 に答える