调整雪碧大小错误

SFML Sprite resizing error

本文关键字:错误 调整      更新时间:2023-10-16

每当我尝试使用sfml 1.6 sprite . resize (x,y)函数调整精灵的大小时,它只是复制最右边和最底部的任何内容,只要它需要使其大小。有没有办法让它实际缩放图像?我有一张30 * 30的图片,我想把它缩放成90 * 90,但结果是这样的(第一张图片是它给我的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 

它不显示任何东西,而是显示的图像与奇怪的缓冲区在一边。

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