Понедельник, 02 Декабря 2024, 15:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
HGE и Box2D
Animan2010Дата: Пятница, 14 Сентября 2012, 18:56 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
В общем, начал изучать движки HGE и Box2D, успешно присобачил их к проекту, но возникла небольшая проблема.
В туториалах Бокса2Д и экземплах физический мир инициализируется в функции main(), наподобие:

В ХГЕ всё немного более запутанно.
В общем, по идее, инициализацию надо проводить в функции int WINAPI WinMain(), в которой происходит и инициализация параметров ХГЕ движка.
Там указавается фрейм-функция, которая повторяется всё время выполнения программы.
Но в саму фрейм-функцию нельзя передавать переменные, иначе хге просто не будет работать, поэтому фрейм-функция не может видеть мир, который инициализирован в WinMain().
Если же в области объявления глобальных переменных прописать
b2World world;
То компилятор выдает ошибку "нет подходящего конструктора по умолчанию".
Что делать?
Если что, вот весь код программы:

Добавлено (14.09.2012, 18:33)
---------------------------------------------
По отдельности могу запустить и проверить работоспособность HGE и BOX2D, но вот не могу запустить их вместе.
Попробую либо прикрутить chipmunk, либо сменить HGE на другой двиг (но не хотелось бы менять хге).
Буду благодарен, если найдёте решение проблемы.

Добавлено (14.09.2012, 18:56)
---------------------------------------------
Вспомнил свои скудные знания про указатели и немного изменил код.
В области глобальных переменных создал указатель
b2World *world;
В WinMain() создал и инициализировал world1, затем указателю world присвоил адрес world1:
world = &world1;
И в фреймфункции немного изменил код:
было world.Step(1/60,10)
теперь
world->step(1/60,10)
Всё работает, сам офигел. Особенно, если учесть, что я писал это почти наугад.


Anima Games
Animan Publishing
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг