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

SFML学习笔记(1)——初识SFML一 SFMLSFML 是多媒体库 它为 PC 的各个组件提供简单的界面 用来简化游戏和多媒体应用程序的开发 SFML 分成以下五个模块 这些模块相互独立 也可以根据需要组合在一起 System 系统 一个核心模块 它定义了最基本的数据结构 提供对线程 时钟 用户数据流和其他底层内容的访问方法 Window 窗口 该模块提供了一种创建和管理窗口 收集用户输入和事件以及将 SFML 和 OpenGL 组合使用的方法 Graphics 图形 在充分利用窗口模块之后 所有需要图形化处理的内容都落在图形模块上 它处

一、SFML

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

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

二、基本框架

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

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




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227636.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:51
下一篇 2026年3月16日 下午8:51


相关推荐

  • 进程通信方式总结与盘点

    进程通信方式总结与盘点进程通信是指进程之间的信息交换 这里需要和进程同步做一下区分 进程同步控制多个进程按一定顺序执行 进程通信是一种手段 而进程同步是目标 从某方面来讲 进程通信可以解决进程同步问题 首先回顾下我们前面博文中讲到的信号量机制 为了实现进程的互斥与同步 需要在进程间交换一定的信息 因此信号量机制也可以被归为进程通信的一种方式 但是也被称为低级进程通信 主要原因为 效率低 一次只可操作少量的

    2025年7月26日
    9
  • 【Activity】Activity的启动模式:SingleTask

    【Activity】Activity的启动模式:SingleTask目录1.概述2.详细过程2.1启动MainActivity2.1.1生命周期2.1.2Activity栈2.2MainActivity中启动SecondActivity2.2.1生命周期2.2.2Activity栈2.3SecondActivity中启动MainActivity2.3.1生命周期2.3.2Activity栈2.4…

    2022年6月26日
    32
  • 国内服务器免备案访问教程是什么_国外服务器国内域名要不要备案

    国内服务器免备案访问教程是什么_国外服务器国内域名要不要备案首先我们需要准备:1.国内服务器一台2.一级域名一个3.免费免备案的CDNNodecache(百度搜索即可,可通过无限注册来一直白嫖)首先打开宝塔面板添加一个网站,然后去域名解析到你的服务器!(以获得一个源站域名)现在开始进入Nodecache进行cdn设置首先我们注册登录要创建CDN服务然后开始配置CDN服务信息(具体配置请看图)服务名称随便填加速域名就是你要访问的域名源站地址就是你的服务器ip端口跟着我填8866地区选择中国直连复制打.

    2025年10月18日
    7
  • 脚本模板[通俗易懂]

    脚本模板[通俗易懂]setignorecase(忽略字符的大小写)简写:seticsetcursorline(设置光标所在行的标识线)简写:setculsetautoindent(设置自动缩进)简写:

    2022年8月6日
    8
  • linux 中jenkins启动/重启/停止命令 改端口

    linux 中jenkins启动/重启/停止命令 改端口jenkins启动#servicejenkinsstart重启#servicejenkinsrestart停止#servicejenkinsstop默认jenkins端口是8080,如果是jenkins的war包方式启动1.到war包目录执行下面的命令#java-jarjenkins.war–ajp13Port=-1–httpPort=808…

    2022年6月2日
    141
  • qt 当前窗口句柄_QT获取窗口句柄

    qt 当前窗口句柄_QT获取窗口句柄mac安装paramiko$brewinstallopenssl$/usr/local/opt/openssl/bin/c_rehash$exportARCHFLAGS=”-archx86_64&q…用Canvas制作剪纸效果在做剪纸效果之前,先介绍剪纸效果运用到的一些知识:1.阴影:在Canvas之中进行绘制时,可以通过修改绘图环境中的如下4个属性值来指定阴影…

    2022年7月14日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号