引擎开发四: SFML库及使用

  SFML 是多媒体库,它为PC的各个组件提供简单的界面,用来简化游戏和多媒体应用程序的开发。 主要由五个模块组成,分别是:系统,窗口,图形,音频和网络。

  SFML 是跨平台的,通过 SFML,你的应用程序可以在最常见的操作系统上进行编译和运行:Windows,Linux,macOS以及Android和iOS。

官网地址:https://www.sfml-dev.org/

安装及使用

环境:win7 VS2015

1. 下载SFML:

地址:https://github.com/SFML/SFML

在这里插入图片描述

2. cmake打开生成VS工程:

在这里插入图片描述
需要修改一下 CMAKE_IUNSTALL_PREFIX 目录,根据自己工程目录习惯设置,这个目录是编译后生成的SDK目录包含include文件、dll文件、lib文件。
如下图:
在这里插入图片描述

点击 Configure、Generate 生成工程文件到build目录中,
在这里插入图片描述
选择Install 项目进行编译
在这里插入图片描述
在SFML-master\SFML目录下生成四个文件夹:bin、include、lib、share。我们主要用bin、include、lib三个文件夹中的文件。

3. opengl项目配置:

a. 项目属性 ----> C/C++ —> 附加包含目录 —> your_path\SFML-master\SFML\include
b. 项目属性 ----> 链接器 —> 常规 —> 附加库目录 —> your_path\lib
c. 项目属性 ----> 链接器 —> 输入 —> 附加依赖项 —>
openal32.lib
sfml-audio-d.lib
sfml-graphics-d.lib
sfml-main-d.lib
sfml-network-d.lib
sfml-system-d.lib
sfml-window-d.lib

4. 代码:

这里使用SFML创建一个窗口,并绘制一个圆。

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

int main(int argc, char const *argv[])
{
	sf::RenderWindow window(sf::VideoMode(400, 400), "Circle");
	window.setFramerateLimit(60);

	sf::CircleShape circle(150);
	circle.setFillColor(sf::Color::Blue);
	circle.setPosition(10, 20);

	while (window.isOpen()) {
		sf::Event event;
		while (window.pollEvent(event)) {
			if (event.type == sf::Event::Closed
				|| (event.type == sf::Event::KeyPressed
					&& event.key.code == sf::Keyboard::Escape)) {
				window.close();
			}
			window.clear();
			window.draw(circle);
			window.display();
		}
	}
	return 0;
}

4. 运行结果:

在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 开发2D游戏引擎可以使用C++语言和一些常见的游戏开发库,如SDL、SFML、OpenGL等。以下是一个简单的步骤: 1. 确定游戏引擎的功能和特性,例如支持哪些平台、渲染引擎、物理引擎、音频等。 2. 使用C++语言编写游戏引擎的框架,包括游戏循环、资源管理、场景管理、输入输出、碰撞检测等基本功能。 3. 集成游戏开发库,例如SDL或SFML,来处理输入输出、图像和声音。 4. 使用OpenGL或其他可用的图形库来渲染图像,并实现2D图形渲染。 5. 实现物理引擎,例如Box2D,处理游戏中的碰撞和物理效果。 6. 开发游戏编辑器,以便游戏开发者可以轻松创建和编辑游戏世界。 7. 测试和调试游戏引擎,确保它能够正确地处理所有可能的情况。 8. 最后,使用游戏引擎创建游戏,测试游戏并发布。 以上是一个简单的步骤,开发2D游戏引擎需要大量的工作和经验。 ### 回答2: 开发2D游戏引擎是一项需要技术和创造力的任务。首先,作为开发者,我们需要掌握编程语言,如C,这使我们能够编写代码并实现游戏引擎的各种功能。C语言是一种强大的编程语言,广泛用于游戏开发领域,因为它能够提供高性能和灵活性。 在开发2D游戏引擎时,我们需要考虑许多因素。首先是游戏的图形渲染,C语言提供了许多图形库和API,例如OpenGL,我们可以利用这些库来实现游戏中的图形效果和动画。 其次,我们需要处理用户输入和游戏物理仿真。用户输入可以是键盘、鼠标或触摸屏,我们需要编写代码来捕捉和处理用户输入,以便控制游戏角色和操作。 另外,物理仿真是为了进行游戏中的物体运动模拟,例如重力、碰撞等。我们可以使用物理引擎库,如Box2D,来实现这些效果。 游戏的音频处理也是一个重要的方面。我们可以使用C语言提供的音频库,例如OpenAL,来实现游戏中的音效和音乐播放。 最后,考虑到游戏的性能和优化,我们需要进行适当的资源管理和内存管理。这可以通过编写高效的代码和使用合适的数据结构来实现。 总而言之,开发2D游戏引擎需要深入了解C语言编程和游戏开发技术。通过合理设计和实现,我们可以创造出各种精彩的2D游戏,并为玩家带来愉悦的游戏体验。 ### 回答3: C开发2D游戏引擎是一项富有挑战性的任务。2D游戏引擎开发和运行2D游戏的软件框架,它提供了处理图像、动画、碰撞检测、物理模拟等核心功能。下面将介绍C开发2D游戏引擎的一些关键方面。 首先,需要设计并实现游戏引擎的核心结构。这包括定义场景、实体、碰撞检测等基本概念,并为其编写相应的数据结构和算法。开发者需要具备良好的数据结构和算法设计能力,以确保引擎的高效性和可扩展性。 其次,需要处理图像和动画。2D游戏引擎需要加载、显示和管理游戏中的各种图像资源,并实现动画效果。这需要使用一些图形库和技术,如SDL(Simple DirectMedia Layer)或OpenGL来处理渲染。 第三,碰撞检测是游戏引擎的另一个重要方面。它能够检测到游戏中不同实体之间的碰撞,并触发相应的事件。碰撞检测可以使用各种技术来实现,如动态边界盒、像素级检测或分层检测等。 然后,物理模拟也是2D游戏引擎的一个关键特性。它可以模拟游戏中的物理效果,如重力、摩擦力等,并使游戏更加真实和可交互。为了实现这些效果,开发者需要理解物理学原理,并编写适当的代码实现。 最后,一个成功的2D游戏引擎还需要提供一些工具和接口,以方便开发使用。这包括编辑器、导航系统、场景管理和资源管理等功能,以及提供一些API和文档来帮助其他开发使用你的游戏引擎。 总而言之,C开发2D游戏引擎需要开发者具备良好的编程和算法设计能力。这需要对游戏引擎的核心结构、图像处理、碰撞检测、物理模拟等方面有深入理解,并能够将这些概念转化为可工作的代码来实现一个高效、可扩展的2D游戏引擎
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值