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

article/2025/9/30 15:07:56

一、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)。


http://chatgpt.dhexx.cn/article/p7OH4Y5R.shtml

相关文章

找出数组中第k大的数

给定一个数组,找出数组中第k大的数。其实现代码如下: package com.threeTop.www;/*** 找出数组中第k大的数* author wjgs**/ public class FindK {public static void find(int[]array,int begin,int end,int k){int ipartition(array,begin,end);if(i1>k){//左半…

n个数中找最大数c语言,N个数中找到第K大的数值(C语实现)

N个数中找到第K大的数值(C语实现) N个数中找到第K大的数值(C语实现) 研究生了,选了计算机算法这门课程,这周布置了一个作业,在OJ上做:**N个数中找到第K大的数值**。大一简单学过C语言基础,目前只能用C语言编程,后续会学C++编程。 分享一份不超时的C语代码~ 测试例子: 思…

快速排序计算第K大的数

先说结论,最终版本代码如下: public class KthNum {public static int k 2;public static boolean bigK false;public static void main(String[] args) {int arr[] {3, 2, 3, 1, 7, 4, 5, 5, 6};int kNum quickSort(arr);System.out.println("…

寻找第K大的数 C语言实现的一种方法

描述 在一个数组中,找到第K 大的数值一个数组,如:[3,2,1,5,6,4] ,输入 2,返回:5也就是这个K的取值,是从 1 开始的,不超过数组的最大个数 解决思路 可以使用任意的排查函数&#x…

C++——寻找第k大的数

给出一个数组,找出数组的第k大的数:基于快速排序的思路,每次快排后,基准的左边都是比其小的数,右边都是比其大的数,一次快排结束后,若基准所处的位置正好是第k大(即基准右边有k-1个数…

面试题:从n个数中找出第K大的数

参考https://blog.csdn.net/orangefly0214/article/details/84997668的思路 从有n个元素的乱序数组中找出第k大的元素 方法1:基于冒泡排序和简单选择排序,时间复杂度o(n*k) 我们知道,在冒泡排序和简单选择排序中,最外层的循环每…

在N个数中查找第K大的数字(Top K问题)

在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 O(N*logN)O(N)O(1)O(2) 答案:B 所谓“第(前)k大数问题”指的是在长度为n(n>k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 注意&…

idea控制台乱码解决方法

一、问题情况: IntelliJ IDEA 控制台输出中文乱码部分如图所示: 二、解决方法: 1.打开tomcat配置页面,Edit Configurations。 2.选择项目部署的tomcat,在配置项VM options文本框中输入-Dfile.encodingUTF-8,点击Appl…

idea 控制台乱码问题的问题

工程(环境window10,gradle-6.8.3版本,编辑器IntelliJ IDEA 2019.3.4) 一)问题表现编译build的时候控制台带中文信息的会乱码 1、 找到Help->Editor Custom VM Options 2、 添加 -Dfile.encodingUTF-8 该设置是针对编辑器级别…

IDEA中控制台乱码的解决方式

1.在设置中的“文件编码”中将3个位置设为UTF-8,注:此处设置与控制台乱码无关,3处可均设为UTF-8或均设为系统默认值。 2.在Tomcat的“编辑配置”中,将VM options设为-Dfile.encodingGBK(与第三步类似,默认即为GBK)。…

IDEA控制台乱码终极解决办法

【关于IDEA中文乱码的终极解决方法】 查了很多资料,大多数博主都是修改四个地方:(前四步)如果前四步还是不行,可以看五、六步。第一步:idea 安装目录下/bin/idea.exe.vmoptions 和/bin/idea64.exe.vmoption…

IDEA控制台乱码解决

解决办法: 打开Intellij的安装的bin目录(D:\Program Files\JetBrains\IntelliJ IDEA 14.0\bin ),找到上图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加&#xf…

多种方法帮你解决tomcat项目部署,idea控制台乱码问题

解决在使用Tomcat过程中idea控制台出现的乱码问题 以下将介绍几种方法(都是小编亲测实用的方法),尝试并寻找适合自己的方法即可 由于我已经处理过了乱码问题,我就重新配置一下 (我有效解决的方案是把-Dfile.encoding…

idea 控制台乱码

1.我原来的修改idea的控制台乱码是 在ideasettings--Editor--File encodings修改为UTF-8 2.tomcat 中修改的conf logging.properties配置文件 由UTF-8修改为GBK 以上是我之前的修改.最近有个项目这样配置之后在项目运行的时候.有个页面要获取一个json字段.但是代码中有乱码的…

IDEA控制台乱码问题,原因解决方式,解决不了算我输

IDEA 控制台乱码问题 文章目录 IDEA 控制台乱码问题为了节省大家时间, 直接展示下我的编码配置方案我的编码配置原则我的编码配置 另外说一下几个重要但是和乱码无关的配置乱码原因解决方式我为什么推荐控制台使用 GBK我的编码设置思想第一种解决方案的弊端end 附加技巧如何找出…

解决idea控制台乱码

控制台乱码如下: 解决方案一:修改当前 Web 项目 Tomcat Server 的虚拟机输出选项 上方导航栏“Run→Edit Configurations…”进入配置页面,修改当前 Web 项目 Tomcat Server 的虚拟机输出选项 VM options 添加 -Dfile.encodingUTF-8 。重启&…

IDEA控制台乱码(已解决)

先来说说我遇到的问题,用IDEA打开项目首先可以保证编辑器内不会乱码,启动Tomcat后控制台出现乱码   我在网上找了很多方式都没有解决,大多数的方式由以下几种: 进入File->Settings->Editor->File Encodings 将右侧的所…

详细解决tomcat乱码 IDEA控制台乱码

1、启动Tomcat时打印出一大堆看不懂的文字 如下图: 原因:产生乱码的根本原因就是编码和解码不一致 解决办法:将打开tomcat的安装目录conf下的logging.properties文件,将java.util.logging.ConsoleHandler.encoding UTF-8 修改为…

MyBatis、IDEA控制台乱码

控制台乱码&#xff1a; 解决方法 在Maven模块的pom.xml中添加 <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.buil…

【IDEA乱码解决方案】IDEA控制台乱码解决方案收集

乱码实例 如图&#xff1a; 我的解决方案 在“帮助”——“编辑自定义VM选项”中&#xff0c;最后一行加上代码&#xff1a; -Dfile.encodingUTF-8然后重启IDEA。 其他方案一&#xff1a;修改IDEA安装目录下的idea64.exe.vmoptions IDEA快捷方式右键->属性->打开文件所…