当前位置: 首页 > news >正文

VisualStudio2022配置2D图形库SFML

文章目录

  • 1. 下载安装SFML库
  • 2. 创建C++项目并配置SFML
    • 配置include目录和库目录
    • 链接SFML库
    • 配置动态链接库
  • 3. 测试

1. 下载安装SFML库

SFML(Simple and Fast Multimedia Library)C++库,适合2D游戏和图形界面,提供了以下模块:

  • Graphics 渲染 2D 形状等
  • Windows 管理窗口和处理用户输入事件
  • Audio 播放音频文件,wav ogg等格式
  • System 管理实践、线程等系统操作
  • Network 支持TCP/UDP网络通信
    适合初学小型开发
    在这里插入图片描述

SFML官网 下载适用于Visual Studio的SFML库
官方网址:https://www.sfml-dev.org/download/sfml/2.6.0/

下载下来,22MB左右在这里插入图片描述
将SFML文件夹解压,记住解压的位置
(如 D:\ProgramFiles\SFML-2.6.0)
在这里插入图片描述

2. 创建C++项目并配置SFML

配置include目录和库目录

打开Visual Studio,创建一个新的“控制台应用”项目(C++)
右键点击项目 -> 属性。
在“VC++目录”下,找到“包含目录”,添加SFML的include文件夹路径(例如 D:\ProgramFiles\SFML-2.6.0\include)。
找到“库目录”,添加SFML的lib文件夹路径(例如 D:\ProgramFiles\SFML-2.6.0\lib)
在这里插入图片描述
在这里插入图片描述

链接SFML库

在项目属性中,配置Debug和Release

Debug
手动添加以下文件,分号隔开,或者该行尾向下三角下拉“编辑”打开对话框输入
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-window-d.lib
sfml-system-d.lib
sfml-network-d.lib
在这里插入图片描述
Release,同样方式添加
手动添加以下库文件,分号隔开,或者该行尾向下三角下拉“编辑”打开对话框输入
sfml-audio.lib
sfml-graphics.lib
sfml-window.lib
sfml-system.lib
sfml-network.lib
在这里插入图片描述

配置动态链接库

将bin文件夹中的 .dll 文件复制到项目的输出目录(如 Debug 文件夹),这样,运行时能找到这些文件
在这里插入图片描述
在这里插入图片描述
这里需要说明一下
D:\code\CPPCode\ProTest02\x64
是项目的主输出目录,存放编译生成的最终可执行文件(.exe)和其他构建相关文件(如 .ilk 和 .pdb 文件),这是程序的运行文件位置。这里的 Debug 或 Release 子目录包含最终输出文件

D:\code\CPPCode\ProTest02\ProTest02\x64
是项目的构建过程中的中间文件存放目录,包含 .obj、.log 等文件,存储每个源文件的编译结果和构建日志。用于编译和调试信息。

在配置SFML动态链接库时,.dll文件需要放在可执行文件所在的 Debug 或 Release 文件夹下,这样可以运行时找到相关依赖

3. 测试

#include <SFML/Graphics.hpp> // 定义一个 Player 类
class Player {
public:sf::RectangleShape shape; // 使用SFML的RectangleShape类形状float speed = 5.0f;       // 定义移动速度// 构造函数,初始化形状和位置Player() {shape.setSize(sf::Vector2f(50, 50));       // 设置为50x50像素的正方形shape.setFillColor(sf::Color::Green);      // 设置颜色为绿色shape.setPosition(200, 200);               // 设置初始位置为(200, 200)}// 移动方法,根据键盘方向键更新位置void move(sf::Keyboard::Key key) {if (key == sf::Keyboard::Left)  shape.move(-speed, 0);   // 向左移动if (key == sf::Keyboard::Right) shape.move(speed, 0);    // 向右移动if (key == sf::Keyboard::Up)    shape.move(0, -speed);   // 向上移动if (key == sf::Keyboard::Down)  shape.move(0, speed);    // 向下移动}
};int main() {// 创建一个窗口,大小为400x400,标题为"Simple Game"sf::RenderWindow window(sf::VideoMode(400, 400), "Simple Game");Player player; // 实例化Player对象// 主游戏循环while (window.isOpen()) {sf::Event event;    // 创建一个事件对象,用于捕捉用户输入// 事件处理循环,捕捉所有窗口事件while (window.pollEvent(event)) {if (event.type == sf::Event::Closed)   // 检查是否有关闭窗口的事件window.close();                    // 关闭窗口// 检查按键事件,调用Player的move方法来移动形状if (event.type == sf::Event::KeyPressed)player.move(event.key.code);}window.clear();            // 清除上一帧的内容window.draw(player.shape); // 绘制形状window.display();          // 显示绘制的内容}return 0; 
}

程序使用SFML库创建了一个简单的2D图形窗口
通过键盘方向键控制移动绿色方块
在这里插入图片描述

相关文章:

VisualStudio2022配置2D图形库SFML

文章目录 1. 下载安装SFML库2. 创建C项目并配置SFML配置include目录和库目录链接SFML库配置动态链接库 3. 测试 1. 下载安装SFML库 SFML&#xff08;Simple and Fast Multimedia Library&#xff09;C库&#xff0c;适合2D游戏和图形界面&#xff0c;提供了以下模块&#xff1…...

「Mac畅玩鸿蒙与硬件4」鸿蒙开发环境配置篇4 - DevEco Studio 高效使用技巧

本篇将进一步介绍如何在 DevEco Studio 中高效使用各种功能&#xff0c;通过掌握快捷键、代码补全、调试工具等&#xff0c;帮助开发者在鸿蒙应用开发中大幅提升工作效率。 关键词 DevEco Studio快捷键代码补全调试工具项目导航 一、快捷键与高效操作 快捷键是提升开发效率的…...

构建生产级的 RAG 系统

对 RAG 应用程序进行原型设计很容易&#xff0c;但要使其高性能、健壮且可扩展到大型知识语料库却很困难。 本指南包含各种提示和技巧&#xff0c;以提高 RAG 工作流程的性能。我们首先概述一些通用技术 - 它们按照简单到复杂的顺序进行排列。然后&#xff0c;我们将更深入地研…...

完全透彻了解一个asp.net core MVC项目模板2

这是《完全透彻了解一个asp.net core MVC项目模板》的第二篇&#xff0c;如果你直接进入了本篇博文而不知道上下文&#xff0c;请先阅读《完全透彻了解一个asp.net core MVC项目模板》的第一篇。 文章目录 一、补充几个问题1、有关导航链接和Tag Helper2、_ViewStart.cshtml与…...

uniapp 如何调用音频

uniapp调用音频 button点击 <view><button click"startPlay">开始播放</button></view>方法实现 startPlay() { const innerAudioContext uni.createInnerAudioContext();innerAudioContext.src /static/sounds/oqc.mp3;innerAudioContex…...

在Facebook运营中使用住宅IP的重要性

在当前社交媒体的浪潮中&#xff0c;Facebook作为全球最大的社交网络之一&#xff0c;吸引了数以亿计的用户。为了在这一平台上实现有效的运营和推广&#xff0c;越来越多的博主和营销人员正在寻求最佳的养号策略。其中&#xff0c;IP地址的选择显得尤为重要&#xff0c;尤其是…...

EJB项目如何升级SpringCloud

记录某金融机构老项目重构升级为微服务过程1 如何从EJB架构拆分微服务 这个非常有趣的过程&#xff0c;整个过程耗时大致接近半年时光&#xff0c;需要考虑到重构升级保留原来的业务线&#xff0c;而且还要考虑后续的维护成本&#xff0c;保留现有的数据库表结构&#xff0c;…...

HTTPS 协议原理

一.HTTPS的定义 大家在刚开始学习的时候是不是也是非常好奇HTTP与HTTPS之间有什么区别和联系&#xff0c;两者都是应用层协议&#xff0c;而HTTPS是在HTTP的基础上引入了加密层&#xff0c;从而将HTTP的明文传输进行加密&#xff0c;保障数据的安全性 二.加密与解密 定义&#…...

Vxe UI 表格行编辑(默认不显示编辑框,点击后可编辑)

效果: HTML代码:(type"integer"为这个,是限制只能输入正整数或负整数,英文和汉字自动转成0) <vxe-tableshow-overflowkeep-sourcev-loading"loading":data"ruleList"ref"Table":row-config"{isHover: true}"height"…...

移远通信闪耀2024香港秋灯展,以丰富的Matter产品及方案推动智能家居产业发展

10月27-30日&#xff0c;2024香港国际秋季灯饰展在香港会议展览中心盛大开展。 作为全球领先的物联网整体解决方案供应商&#xff0c;移远通信再次亮相&#xff0c;并重点展示了旗下支持Matter协议以及亚马逊ACK ( Alexa Connect Kit ) SDK for Matter方案的Wi-Fi模组、低功耗蓝…...

爬虫利器playwright

是什么 它是微软在 2020 年初开源的新一代自动化测试工具&#xff0c;其功能和 selenium 类似&#xff0c;都可以驱动浏览器进行各种自动化操作。还可以录制脚本 案列-01 运行之后我们用它自动打开的谷歌浏览器&#xff0c;打开百度&#xff0c;输入漂亮小姐姐并查找&#x…...

着色器的认识

知识了解&#xff1a; 着色器&#xff1a; 顶点着色器: 用来描述顶点的特性,如位置、颜色等&#xff0c;其中&#xff0c;顶点&#xff1a;是指二维或三维空间中的一个点比如交点或者端点。 片元着色器&#xff1a;用来进行逐片元处理操作&#xff0c;比如光照、颜色叠加等&…...

科技的成就(六十四)

591、《传奇》开始公开测试 "2001 年 9 月&#xff0c;《传奇》开始公开测试。《传奇》&#xff08;全称《热血传奇》&#xff09;是由韩国 WeMade 娱乐开发制作的大型多人在线角色扮演游戏&#xff0c;由 Delphi 编写。盛大网络于2001 年获得该游戏在中国的代理权。《传奇…...

银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等...

全文链接&#xff1a;https://tecdat.cn/?p38026 分析师&#xff1a;Fanghui Shao 在当今金融领域&#xff0c;风险管控至关重要。无论是汽车贷款违约预测、银行挖掘潜在贷款客户&#xff0c;还是信贷风控模型的构建&#xff0c;以及基于决策树的银行信贷风险预警&#xff0c;…...

〈壮志凌云:独行侠〉中的超高音速战机

电影《壮志凌云&#xff1a;独行侠》中使用的黑星&#xff08;Darkstar&#xff09;高超音速概念战机模型&#xff0c;虽然看起来像是科幻电影里的产物&#xff0c;但这架飞机实际上是由洛克希德马丁公司的臭鼬工厂&#xff08;Skunk Works&#xff09;设计&#xff0c;这是一家…...

k8s集群 ceph rbd 存储动态扩容

k8s 集群 rbd 扩容有两种方法&#xff0c;如下所示 通过StorageClass自动扩容 # kubectl get sc csi-rbd-sc -oyaml|grep allowVolumeExpansion allowVolumeExpansion: true如果搜索有如上字段&#xff0c;说明是可以自动扩容的&#xff0c;修改对应要扩容的 PVC容量&#xf…...

C语言笔记(指针题目)例题+图解

本文分为两部分 &#xff0c;第一部分为数组、字符串、字符指针在sizeof和strlen中的辨析&#xff0c;第二部分是一些笔试题目。若有错误&#xff0c;请批评指正。 目录 1.第一部分 1.1.数组名的使用 1.1.1一维整型数组在sizeof中的使用 1.1.2一维字符数组在sizeof中的使用…...

从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)

从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09; 文章目录 从零开始的 vue项目部署到服务器详细步骤&#xff08;vue项目build打包nginx部署配置ssl证书&#xff09;一、前言二、vue项目部署前配置1、vite.config.js 增加…...

[OceanBase-不止于记录]:揭秘双引擎战略,共探AI时代数据架构未来

前言 又到了一年一度大家最爱的探会文章&#xff0c;非常荣幸收到OceanBase官方的邀请参加2024 OceanBase 年度发布会&#xff0c;作为一个经常参加线下探会的博主&#xff0c;每一次体验都有所不同&#xff0c;每一次新技术的突破都让人感到无比兴奋。同时&#xff0c;作为数…...

项目:抽奖系统

文章目录 1. 项目&#xff1a;抽奖系统 1. 项目&#xff1a;抽奖系统 from faker import Fakerfk Faker(localezh_CN)name_list [] for i in range(100):name_list.append(fk.name()) print(name_list)import randomclass MyFrame(wx.Frame):def __init__(self):wx.Frame.__…...

Blender 3MF插件:终极指南 - 如何轻松实现3D打印设计一体化

Blender 3MF插件&#xff1a;终极指南 - 如何轻松实现3D打印设计一体化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾经在Blender中精心设计了3D模型&#xff…...

All-in-One Telegram机器人:加密货币监控与多功能集成部署指南

1. 项目概述 如果你和我一样&#xff0c;是个喜欢折腾各种效率工具&#xff0c;同时又对加密货币市场保持关注的玩家&#xff0c;那你肯定也经历过这样的场景&#xff1a;手机里塞满了各种功能的机器人——一个用来监控币价&#xff0c;一个用来下载视频&#xff0c;一个用来处…...

神经渲染新范式:体素网格技术全解析与实战指南

神经渲染新范式&#xff1a;体素网格技术全解析与实战指南 引言 在追求极致真实感与实时交互的3D数字世界中&#xff0c;神经渲染技术正掀起一场革命。其中&#xff0c;神经体素网格作为神经辐射场&#xff08;NeRF&#xff09;与显式体素表示融合的产物&#xff0c;以其在高…...

【python】运算符号(后续不断补充)

1、常规除 / #数学中的算法&#xff0c;带后面小数 print(3 / 2)2、整除 // #去除小数部分&#xff0c;只留下整数 print(3 // 2)3、求余 % #返回余数 print(15 % 11)4、指数 ** #用于计算一个数的指数 # b ** 2 : b的平方 # 2 ** 3 8 import math a -1 b -2 c 3 #求根公式…...

LOSEHU固件深度解析:泉盛UV-K5/K6全功能固件架构与实战部署指南

LOSEHU固件深度解析&#xff1a;泉盛UV-K5/K6全功能固件架构与实战部署指南 【免费下载链接】uv-k5-firmware-custom 全功能泉盛UV-K5/K6固件 Quansheng UV-K5/K6 Firmware 项目地址: https://gitcode.com/gh_mirrors/uvk5f/uv-k5-firmware-custom LOSEHU固件是一款专为…...

OBS多平台直播终极指南:如何一键同步推流到所有主流平台

OBS多平台直播终极指南&#xff1a;如何一键同步推流到所有主流平台 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否曾经为了同时在多个直播平台开播而手忙脚乱&#xff1f;每次都…...

终极指南:3分钟掌握Translumo实时屏幕翻译工具,游戏外语学习两不误

终极指南&#xff1a;3分钟掌握Translumo实时屏幕翻译工具&#xff0c;游戏外语学习两不误 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr…...

如何让Windows任务栏变透明:TranslucentTB终极美化指南

如何让Windows任务栏变透明&#xff1a;TranslucentTB终极美化指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想让你的Windows桌面焕…...

BepInEx IL2CPP启动失败终极解决指南:从异常诊断到游戏正常运行

BepInEx IL2CPP启动失败终极解决指南&#xff1a;从异常诊断到游戏正常运行 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx作为Unity游戏插件框架&#xff0c;为玩家和开发…...

TTS推理优化:低精度计算与硬件协同设计实践

1. 项目概述&#xff1a;TTS推理的经济学重构在语音技术领域&#xff0c;文本转语音&#xff08;TTS&#xff09;系统正从实验室走向生产环境&#xff0c;成为智能助手、无障碍工具和实时通信系统的核心组件。与大型语言模型&#xff08;LLM&#xff09;不同&#xff0c;TTS需要…...