SFML学习笔记(1)——初识SFML

一、SFML

SFML 是多媒体库,它为PC的各个组件提供简单的界面,用来简化游戏和多媒体应用程序的开发。
SFML分成以下五个模块,这些模块相互独立,也可以根据需要组合在一起:

System(系统):一个核心模块,它定义了最基本的数据结构,提供对线程、时钟、用户数据流和其他底层内容的访问方法。
Window(窗口):该模块提供了一种创建和管理窗口、收集用户输入和事件以及将SFML和OpenGL组合使用的方法。
Graphics(图形):在充分利用窗口模块之后,所有需要图形化处理的内容都落在图形模块上。它处理所有和二维渲染相关的内容。
Audio(音频):该模块处理任何与播放音乐,声音,音频流,或录音音频相关的内容。
Network(网络):最后一个但绝对不是最无趣的模块,它提供了通过使用一些网络协议向其它计算机发送数据的方法。

        窗口、图形、音频和网络库都依赖于系统库,任何SFML应用程序都必须链接到系统库才能编译和运行。图形库也依赖于窗口库,因此如果应用程序要进行绘图,则必须将这三个库链接到一起。音频和网络库只依赖于系统库。

二、基本框架

       1、 创建并初始化游戏窗口 window;
       2、 使用 while(window.isOpen())建立主循环结构,循环条件是判断游戏窗口是否是打开的;
       3、 主循环中,使用 while(window.pollEvent(event))轮询并处理游戏窗口输入事件,根据输入事件
处理结果调整更新游戏对象;
       4、 主循环中,使用 window.clear(sf::Color::Black)清除游戏窗口缓存内容;
       5、 主循环中,使用 window.draw()将更新后的游戏对象放入到游戏窗口缓存中;
       6、 主循环中,使用 window.display()将游戏窗口缓存内容绘制到屏幕上。

三、初识屏幕坐标和游戏对象内部坐标

       一个可视化的2D游戏对象,比如一个角色,在SFML中被称为Sprite(精灵)。Sprite通常会使用一个或多个Texture(纹理)作为它的皮肤贴图。在SFML中,Texture对应于具体的图像。
       所有的Sprite都有自己的原点。如果我们将一个Sprite(精灵)绘制到屏幕上的一个特定位置,实质上就是将Sprite的原点(0,0)定位到这个位置。
实例图中,在(1920, 1080)的屏幕中,小人儿(sprite)的中心坐标为(960, 540)。

  • 18
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值