SFML и Visual studio
Введение
Эта статья - первое,что вы должны изучить перед использованием SFML с помощью Visual Studio IDE (компилятор Visual C++). Здесь описывается,как настроить ваши проекты SFML.
Устанавливаем SFML
Во-первых,вы должны загрузить SFML SDK со страницы загрузки.
Вы должны загрузить пакет,который соответствует вашей версии Visual C + + . Например,библиотека,собранная с помощью VC + + 9 (Visual Studio 2008) не является совместимой с VC ++ 10 (Visual Studio 2010). Если вы не нашли пакета SFML,собранного для вашей версии Visual C + + ,вы можете пересобрать SFML.
Далее вы должны разархивировать SFML куда вам будет удобно.Копировать заголовочные файлы и библиотеки в вашу папку Visual Studio не рекомендуется,лучше хранить библиотеки в их отдельной папке,особенно если вы используете несколько версий библиотеки или несколько компиляторов.
Создание и настройка проекта SFML ===
Первым делом необходимо выбрать какой тип проекта создать - вы должны выбрать "Win32 application".Мастер предложит несколько пунктов для настроек вашего проекта - выберите "Console application",если вам нужна консоль,или "Windows application",если она вам не требуется.Выберите "Empty project",если вам не требуется сгенерированный автоматически код.
Для целей этой статьи,вы должны создать main.cpp и добавить его в проект,теперь мы будем иметь доступ к настройкам C++(в ином случае Visual Studio не будет знать какой язык будет использоваться в этом проекте).Далее вы увидите,какой код мы напишем в этом файле.
Теперь нам требуется сообщить компилятору - где располагаются заголовочные файлы SFML(файлы .hpp) и линкеру - где располагаются библиотеки SFML (файлы .lib).
В свойствах проекта добавьте:
Путь к заголовочным файлам SFML (<sfml-install-path>/include) в C/C++ » General » Additional Include Directories
Путь к библиотекам SFML (<sfml-install-path>/lib) в Linker » General » Additional Library Directories
Эти пути одинаковы в режиме Debug и Release,поэтому установите их глобально для вашего проекта("All configurations").
http://xgm.ru/files/283/118376/start-vc-paths.png
Следующим шагом будет линковка к вашему проекту необходимых вам библиотек SFML (файлов .lib).SFML состоит из 5 модулей (system, window, graphics, network and audio) и одной библиотеки для каждого из них.
Библиотеки должны быть добавлены в свойствах проекта,в Linker » Input » Additional Dependencies.Добавьте все библиотеки SFML,которые вам требуются,например " sfml-graphics.lib", " sfml-window.lib" и " sfml-system.lib".
http://xgm.ru/files/283/118376/start-vc-link-libs.png
Важно прилинковать библиотеку,соответствующую конфигурации - "sfml-xxx-d.lib" для Debug и "sfml-xxx.lib" для Release.Неправильное сочетание может привести к ошибкам.
Согласно показанным здесь настройкам ваш проект будет прилинкован к динамической версии SFML,которая требует DLL-файлы.Если вы хотите избавиться от этих DLL-файлов и иметь SFML напрямую встроенную в ваш .exe-файл,вы должны прилинковать статическую версию.Статические библиотеки SFML имеют "-s" суффикс - "sfml-xxx-s-d.lib" для Debug и "sfml-xxx-s.lib" для Release.Также вы должны определить макрос SFML_STATIC в опциях препроцессора вашего проекта.
http://xgm.ru/files/283/118376/start-vc-static.png
Если вы не знаете разницы между динамической и статической библиотекой и не знаете какую использовать,вы можете найти о них подробную информацию в Google.
Ваш проект готов,так давайте же добавим немного кода,чтобы убедиться что он работает.Добавьте этот код в ваш файл main.cpp:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}Если вы при создании проекта выберете "Windows application",тогда точкой входа кода будет функция "WinMain" вместо "main".Из-за специфики Windows,ваш код не будет компилироваться на Linux или Mac OS X,SFML дает возможность сохранить стандартную точку входа "main" следующим образом: прилинкуйте ваш проект к главному модулю SFML(" sfml-main-d.lib" в Debug, " sfml-main.lib" в Release),таким же образом прилинкуйте sfml-graphics, sfml-window и sfml-system.
Теперь скомпилируйте проект и если вы прилинковали к динамической версии SFML,не забудьте скопировать DLL-файлы SFML (они находятся в <sfml-install-path/bin>) в директорию,где находится ваш .exe файл.Затем запустите его и если всё в порядке,вы увидите это:
http://xgm.ru/files/283/118376/start-vc-app.png
Если вы используете модуль sfml-audio,вы должны также скопировать DLL-файлы соответствующей библиотеки - libsndfile-1.dll и OpenAL32.dll.Их можно найти по пути <sfml-install-path/bin>.
Смотрите также:
Комментарии
- 1 (Текущая страница)
- 2
Перевел, красава)
-
Почему не на главке?
на главной уже,просто нужно было кое-какие корректировки по оформлению провести
это только начало цикла перевода статей отсюда
Хм, интересно, а насколько далеко можно зайти с этой библиотекой, например, в разработку игр? Смотрел в Википедии, там насчет модуля Graphics только: "делает простым отображение графических примитивов и изображений".
Хм, интересно, а насколько далеко можно зайти с этой библиотекой, например, в разработку игр? Смотрел в Википедии, там насчет модуля Graphics только: "делает простым отображение графических примитивов и изображений".
по сути это обертка,которая дает разрабатывать под указанные в её описании платформы - при этом пользователь сам выбирает инструмент - встроенные возможности для 2д-графики,либо если человеку нужны более широкие возможности - полная поддержка OpenGL
GenElCon, вот демонстрация (взял с экзамплов). Сам в 3д ничего серьёзного не делал, но на это либе можно приличные вещи пилить.
вот демонстрация (взял с экзамплов)
opengl - "память не может быть read". Это у меня проблемы?
Buulichkaa:
((цитата
вот демонстрация (взял с экзамплов)
))
opengl - "память не может быть read". Это у меня проблемы?
у меня норм всё,обновлял дрова на видеокарту? там если дрова от винды,то не будет версии OpenGL свежее 99 года
там если дрова от винды,то не будет версии OpenGL свежее 99 года
Хм, так и есть.
P.S.
Теперь ясно, из-за чего у меня Minecraft не идет. Там что-то тоже с OpenGL связано было.
Стоит делать пробелы после запятых, а так отлично :3
Привет всем. Я вот как раз пробую эту библиотеку.
http://www.mediafire.com/download/636umicn0lqha52/SpaceKiller...
Это мой небольшой результат )
Забыл написать клавиши управления ))
Стрелки - движение
Пробел - стрельба
Левый Альт - рокета
- 1 (Текущая страница)
- 2


<a href= http://mosros.flybb.ru/viewtopic.php?f=2&t=635>Процесс получения диплома стоматолога: реально ли это сделать быстро?</a>