[SFML教程]03:精灵与纹理

SFML与SDL(或SDL2)一样,可以绘制图像,但是方式有些不同。
在SDL(或SDL2)中,你需要这么制作对象:

struct obj
{
    int x,y;
    SDL_Texture * texture = nullptr;
};

(至少这样比

int obj1_x,obj1_y;
SDL_Texture * obj1_texture = nullptr;

好得多)
但是在SFML中,只需要用sf::Sprite即可,它包含了许多功能,比如move()等,比上面的obj好用的多。
只需要

sf::Texture texture;
texture.loadFromFile("image.png")
sf::Sprite sprite(texture);//获取整个纹理
sf::Sprite sprite(texture,sf::IntRect(0,0,100,100));//截取其中一部分

便可轻松创建,详见官网API文档
最后,用window.draw()绘制出来即可。

注:如果你为了省事制作一个函数如:

//好久没写SFML有点忘了
sf::Texture loadTexture(std::string filename)
{
    sf::Texture load;
    if(!load.loadFromFile(filename))
    return nullptr;
    return load;
}

你只会得到一个白色方块,因为函数结束后load被销毁掉了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值