目录
去掉visual studio运行时的黑色console窗口
安装时遇到的问题已经忘记了,当时参考的网址为:https://www.sfml-dev.org/tutorials/2.5/。什么时候重新装一次遇到问题再补吧。
创建新项目时需要进行的配置
1) 属性->C/C++->附加包含目录:E:\Program Files\SFML-2.5.1-windows-vc15-32-bit\SFML-2.5.1\include
2) 属性->链接器->常规->附加库目录:E:\Program Files\SFML-2.5.1-windows-vc15-32-bit\SFML-2.5.1\lib
3) 属性->链接器->输入->附加依赖项:
sfml-graphics.lib
sfml-system.lib
sfml-window.lib
sfml-audio.lib
注:上面的包含目录和附加库目录是我自己的安装目录,附加依赖项是自己想要使用的内容,自己看情况修改即可。
去掉visual studio运行时的黑色console窗口
先在属性->链接器->系统->子系统中将console切换为windows,再在链接器->高级->入口点中添加mainCRTStartup。
事件
--官网翻译开始--
sf::Event类型
在用events之前,咱先看看类型sf::Event是什么,怎么用。sf::Event,是联合体的一种,因此,同一时间它的成员只有一个是有效的。(回想一下C++课堂上学到的内容:联合体的所有成员共用一块内存。)这个有效地成员,就是能和所发生的事件类型对得上的,比如在事件KeyPressed发生时,event.key就是有效的。试图读取任何其他的成员都会导致一个未定义的行为(最可能的情况是随机或者无效的值)。不要试图用一个不匹配当前发生事件的event成员。
sf :: Event实例由sf :: Window类的pollEvent或waitEvent函数填充。只有这两个函数可以创建有效的事件,尝试使用没有成功调用的pollEvent(或waitEvent)返回值的sf :: Event,都将导致上面提到的的未定义行为。
下面是一个典型的事件循环:
sf::Event event;
// while there are pending events...
while (window.pollEvent(event))
{
// check the type of the event...
switch (event.type)
{
// window closed
case sf::Event::Closed:
window.close();
break;
// key pressed
case sf::Event::KeyPressed:
...
break;
// we don't process other types of events
default:
break;
}
}
--官网翻译结束--