0

每当我尝试使用 sfml 1.6 Sprite.Resize(x,y) 函数调整精灵的大小时,它只会复制最右边和最底部的任何内容,以使其达到该大小。有没有办法让它实际缩放图像?我有一个 30 x 30 的图像,我想将其重新缩放为 90 x 90,但这就是发生的情况(第一张图片是它给我的 90 x 90,第二张是我给它的 30 x 30)。

另外,我刚刚在这段代码中发现:

    void changeI(sf::Image I,int x,int y){
        std::cout<<"h"<<std::endl;
        CI = I; // CI is another sf::Image object declared earlier in my code
        CS.SetImage(CI);
}

如果我将其更改为:

        void changeI(sf::Image I,int x,int y){
            std::cout<<"h"<<std::endl;
            CI = I;
            CS.SetImage(I); //changed CI to I here 

它没有显示任何内容,而是显示侧面带有奇怪缓冲区的图像。

4

1 回答 1

0

我找到了一个解决方案,这是一个相当烦人的错误,当您第一次将精灵设置为图像时,请确保使用您想要的最小的,然后将其调整为您想要的任何大小。然后,您可以使用任何您想要的图像。我想这只是 SFML 的疏忽,希望他们能在 SFML 2.0 中修复它

于 2013-03-18T15:00:32.103 回答