SFML Sprite调整大小错误

时间:2013-03-18 00:45:03

标签: c++ windows image resize sfml

每当我尝试使用sfml 1.6 Sprite.Resize(x,y)函数调整sprite的大小时,它只是复制最右边和最底边的任意数量,以使其达到该大小所需的次数。有没有办法让它实际缩放图像?我有一个30 x 30的图像,我想重新缩放为90乘90,但这是happens(第一张图片是它给我的90乘90,第二张是我给它的30乘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 

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

1 个答案:

答案 0 :(得分:0)

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