Глава 0: OpenTK за 15 минут

После загрузки свежей версии OpenTK возникает вопрос - что же делать дальше?

Из этой короткой записки, вы узнаете как начать использовать OpenTK в три простых шага.

[Шаг 1: Установка]

Запустите установку и выберите любую папку под установку OpenTK.

[Шаг 2: Подключение OpenTK]

Создайте новый проект в .NET IDE (присмотритесь к MonoDevelop или Visual Studio Express, если у вас пока ещё нет IDE). Выберите тип приложения "Console Application". На панели "Solution Explorer", щелкните сначала правой кнопкой на "References" и далее выберите "Add Reference". На закладке "Browse", найдите OpenTK и нажмите OK.

OpenTK зависит от System.Drawing, поэтому также добавьте ссылку на System.Drawing.dll. На панели "Solution Explorer", щелкните правой кнопкой на "References", далее выберите "Add Reference". На закладке ".NET", найдите System.Drawng и нажмите OK.

Теперь откройте папку, в которую была установлена OpenTK и найдите файл "Source\QuickStart\Game.cs". Этот файл содержит основной код, который поможет начать работать с OpenTK. Скопируйте содержимое файла в файл Program.cs нового проекта. Пролистайте вниз, до метода Main() с которого всё и начинается.

Нажмите F5, чтобы запустить проект. Появится окно с цветным треугольником - скучновато, не так ли? Закройте окно нажав "Esc".

[Шаг 3: Изменяя код]

Хороший путь изучения OpenGL и OpenTK это модификация кода.

Каждая игра на OpenTK имеет четыре основных метода:

  1. OnLoad: загрузка ресурсов с диска, например, изображений или музыки.
  2. OnUpdateFrame:обрабатывается клавиатура и мышь, обновляется позиция объектов, просчитывается физика и искусственный интеллект.
  3. OnRenderFrame: здесь содержится код, который отрисовывает графику, который обычно начинается с вызова GL.Clear() и заканчивается вызовом SwapBuffers.
  4. OnResize: это метод вызывается при изменении размера игрового окна. В полноэкранном режиме, вызов этого метода происходит только один раз. В оконном режиме изменение размера может происходить очень часто. Для простоты, просто скопируйте код из Game.cs.

Попробуйте изменить исходный код. Вот несколько идей:

  1. Измените цвет треугольника или цвет заднего фона (метод OnLoad и OnRenderFrame). Подсказка: используйте GL.Color4() для установки цвета треугольника и GL.ClearColor() для цвета заднего фона.
  2. Заставьте треугольник менять цвет после нажатия на клавишу (метод OnUpdateFrame и OnRenderFrame).
  3. Заставьте треугольник двигаться по экрану. Используйте стрелки на клавиатуре или мышь для изменения положения (OnUpdateFrame). Подсказка: используйте Matrix4.CreateTranslation(), чтобы создать матрицу переноса и вызов GL.LoadMatrix(), чтобы применить её (OnRenderFrame).
  4. Используйте цикл for-loop, чтобы отрисовать множество треугольников (метод OnRenderFrame).
  5. Вращайте камеру над нарисованной сценой (метод OnRenderFrame). Подсказка: используйте Matrix4.LookAt(), чтобы создать видовую матрицу и GL.LoadMatrix(), чтобы применить её.
  6. Используйте клавиатуру и мышь, для полета над землей. Убедитесь что вы не можете пройти сквозь неё! (методы OnUpdateFrame и OnRenderFrame).

Следующие классы могут быть полезны Vector2, Vector3, Vector4 и Matrix4 для управления камерой, свойства Mouse и Keyboard для получения состояния мыши и клавиатуры и свойство Joysticks для манипуляции с джойстиком.

Никогда не стоит боятся ошибиться. Изучение OpenTK происходит в процессе программирования - если что-то сломалось, библиотека поможет тебе отыскать причину поломки.

[Следующий шаг]

Есть много вещей, о которых не возможно рассказать за один раз. Многие области игрового программирования сами по себе заслуживают отдельной книги, но мы надеемся, что вы получили некоторые впечатления о библиотеке и сможете приступить к решению более сложных задач. Консультируйтесь с полной документацией для более углубленного понимания OpenTK и не забывайте писать на форум, если что-то пойдет не так.