最近开始学用SFML了,觉得SFML是个挺好的东西,尤其是对于游戏开发来说,因此一边学一边分享吧(我用的c++版本的)!
一、配置
首先是SFML的配置,在http://www.sfml-dev.org/这里进行lib的下载,下载后解压到自己的目录中,然后打开VS2010进行配置。
配置流程,新建项目,选择属性,在VC++目录里面对包含目录和库目录进行配置,这个不解释……
配置VC++的目录属性后,再在链接器里面的输入选项的附加依赖项中加入
sfml-system-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-network-d.lib;sfml-audio-d.lib;sfml-main-d.lib;
以上是debug模式的项,如果是release模式只需要把上面的每个项的-d去掉就行了。
二、第一个程序
我们新建一个工程,加入cpp新文件main.cpp,内容如下:
#include <SFML/Graphics.hpp> //不解释,目前只需要包含图像部分就行了。
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Application"); //对新建窗口的封装,第一个参数是一个VideoMode,表示窗口大小,第二个表示窗口标题
sf::CircleShape shape; //目前的物体,一个圆,暂时把他当成精灵就行了。
shape.setPosition(400, 300);
shape.setRadius(40.0f);
shape.setFillColor(sf::Color::Cyan);
while (window.isOpen()){ //不断执行这个循环
sf::Event event;
while (window.pollEvent(event)){ //sfml中的事件,每次读取窗口的事件。
if (event.type == sf::Event::Closed) //关闭事件,也就是按了窗口上的叉叉
window.close();
if (event.type == sf::Event::KeyPressed){ //按键事件
if (event.key.code == sf::Keyboard::Escape) //如果按了esc,也是关闭的效果
window.close();
}//end if
}//end while
window.clear(); //每次清屏
window.draw(shape); //东西还是要画的
window.display(); //画完之后还是要显示的
}//end while
return 0;
}
以上就是一个最小型的示例。话说SFML真的挺不错的,作为游戏引擎来用的话个人觉得还是很不错的!慢慢学习吧!