Думаю заняться редактором уровня ДВА ДЭ платформера но пока не определился на чём делать. В планах WinApi.
Требования таковы: должно уметь отображать png картинки с транспарентом. Должно уметь отзеркаливать их (win api вроде такого не умеет делать). Желательно наличие всяких чекбоксов, радиобаттонов , полей для ввода текста и тд. Структура уровня примерно такова: всего пять слоёв, два на заднем плане, один слой - наравне с персонажем и прочими объектами, два на переднем плане. Самый задний слой layer1, перед ним layer2 и тд. Самый близкий layer5 На каждый слой задан коэффициент удалённости камеры. Чем больше этот коэффициент, тем медленнее скроллируется. позиционирование картинок на слое расчитывается следующим образом: X = tile.x-cаm.x/far; Y = tile.y-cаm.y; где tile.x , tile.y - позиция отдельно взятого тайла, cam.x cam.y - позиция камеры. far - степень удалённости слоя от камеры (ayer3 всегда должен быть с far'ом , равным единице.)
Сообщение отредактировал Alkosha - Среда, 29 Июля 2015, 10:21
Не вижу никаких проблем сделать такой редактор ручками, даже более я даже не представлю что может существовать такой редактор, а если и существует то они имеют довольно таки специфический экспортер. Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Не вижу никаких проблем сделать такой редактор ручками, даже более я даже не представлю что может существовать такой редактор, а если и существует то они имеют довольно таки специфический экспортер.
Я и так планирую делать "ручками". Я спрашиваю про API. Чтобы бы была возможность зеркалить png-имейджи и были всякие элементы для GUI.
Я и так планирую делать "ручками". Я спрашиваю про API. Чтобы бы была возможность зеркалить png-имейджи и были всякие элементы для GUI.
Не очень понимаю, написать функцию зеркаливания не так и сложно, сделать гуи тоже. Ну может я динозавр и не понимаю в современных технологиях) Все всегда ручками делал прост. Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Используй OpenGL для отрисовки, там отзеркаливание можно сделать либо через матрицу преобразования, либо через текстурные координаты. Вообще я толком вопрос не разглядел, просто написал требования, про слои руками делаются, к примеру std::vector<Layer*> layers;
Сообщение отредактировал Xakep - Среда, 29 Июля 2015, 11:22
ТС, посмотрите на Tiled Map Editor. Может увидите чего-нить дельного) Целью является создание редактора, а не карт? Где будут использоваться созданные карты? Если это свой движок, то используй его! Если нет, то бери: (Qt | wxWidgets | WinAPI) + (Direct3D | OpenGL)
Если не хочешь заморачиваться, возьми вместо D3D | OGL - SFML
Движок свой , используется SDL2. Там можно и зеркалить и вращать и масштабировать спокойно. Но в SDL2 нет GUI-фишек. А сделать сопряжение того же WinAPI с SDL2 (чтоб в одном окне был и SDL-евский рендерер и там же WinAPIшные кнопки, текст-филды, чекбоксы и тд. ) я не знаю как.
Добавлено (29 июля 2015, 16:11) --------------------------------------------- Хотя, как вариант попробую Irrlicht. Там есть свой ГУЙ.
Там просто размещаются объекты и тайлы на карте, при том послойно. Скроллинг настраивается уже на уровне вашего движка. Надо писать свой обработчик и параметр для слоя, который бы обрабатывал скролл
QT-creator установлен, но ни разу на нём не работал.
Как там с png-имэйджами? Их реально зеркалить?
Добавлено (30 июля 2015, 00:14) --------------------------------------------- Посмотрел, вращения масштабирования есть, а зеркалки не нашёл.
Добавлено (30 июля 2015, 00:23) --------------------------------------------- А, не. Всё таки есть. Во вкладке "дизайн" нет, но в "отладке" Image.mirror вроде оно.
С помощью опенГл отзеркалить пнг проще простого же, на нем же и гуи делается. К чему столько гемороя? Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
А сделать сопряжение того же WinAPI с SDL2 (чтоб в одном окне был и SDL-евский рендерер и там же WinAPIшные кнопки, текст-филды, чекбоксы и тд. ) я не знаю как.
Открываем справку к SDL2, ищем SDL_SysWMinfo, поле window, которое только для ОС Windows. Открываем MSDN, смотрим, что же такое HWND и с чем его едят, где живет и т.д. и т.п. Если ты разбираешься в WinAPI, то тебе не составит труда сделать нативный GUI для Windows. Если не знаешь, но все-таки хочешь виндовые элементы управления, то учи ВыньАПИ - благо там много знать не нужно, для простых окошек и элементов управления. Есть другой вариант, сделай GUI через движок, наподобие Unigine - у них через двиг UI редактора и рисуется. Третий вариант, возьми что-нить кроссовое, чтобы не мучать, ни себя ни других, например, тот же wxWidgets или Qt.
ЦитатаAlkosha ()
В тайлед мап эдитор есть параллакс-скроллинг ?
Не знаю, не пользовался, но это, как сказали выше, решается на уровне движка в общем-то) У меня подозрение, что у тебя не движок, а только название движок, а по факту просто костыль фреймворк, который на SDL2 держится. Конечно, возможно, я надеюсь, что я не прав)
Сообщение отредактировал --antonyvolkoff-- - Понедельник, 03 Августа 2015, 14:34
Что такое окно, как его создать, управлять им, и про базовые элементы управления - часа 2 потратишь, чтобы примерно вникнуть Я не имел в виду весь WinAPI, поэтому не только читаем и отвечаем, но и думать тоже не забываем)
Сообщение отредактировал --antonyvolkoff-- - Понедельник, 03 Августа 2015, 14:54
Что такое окно, как его создать, управлять им, и про базовые элементы управления
Именно это я и имел в виду. Как программа "hello word" при переносе "в окно" начинает весить десятки килобайт исходного текста, это нормальному человеку объяснить сложно. Вероятно, Вы имеете в виду не WinAPI, а Visual Studio. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Именно это я и имел в виду. Как программа "hello word" при переносе "в окно" начинает весить десятки килобайт исходного текста, это нормальному человеку объяснить сложно. Вероятно, Вы имеете в виду не WinAPI, а Visual Studio.
Давайте Вы почитаете, что такое Visual Studio, WinAPI, C++, IDE, компилятор. После чего прочитайте мой ответ еще раз, подумайте и ответьте.
ЦитатаGudleifr ()
Года, так, три смотришь...
Да, к слову, весь WinAPI не запомнить, все равно придется смотреть в MSDN.
ДЕСЯТКИ КИЛОБАЙТ ИСХОДНОГО КОДА!!! (165 байт) YEAH! XD Что, собственно, объясняет, какие у Вас познания... Да, может я тебя удивлю, но в блокноте если написать это и «собрать», тоже будет работать, без открытия Visual Studio)
Сообщение отредактировал --antonyvolkoff-- - Понедельник, 03 Августа 2015, 16:08
--antonyvolkoff--, как бы Вам сказать помягче... Да, гуглить умные ответы, это круто, но писать ерунду, тем более заведомо зная, что она ерунда, вряд ли стоит. Если, Вас интересует то, что я действительно думаю о Win API в подробностях, см. http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\5.FOBOS Можете даже написать мне свое мнение в личку.
А, здесь, я повторю: отсылать человека, пытающегося найти простое программное решение к Мастдайной документтации - это заведомое вредительство.
Кстати напомнило, как я впервые полез в тогда еще Win-SDK. Выглядел мой серфинг так: - Как создать кнопку в окне общего вида? - Кнопка создается в диалоговом окне путем... - А в окне общего вида? - Окно общего вида - это... - А как туда засунуть кнопку? - Кнопку? - Да. - В окно общего вида? - Да. - Диалоговое окно отличается от окна общего вида тем, что... И чтобы разместить кнопку в диалоговом окне надо...
P.S. А "hello word" через MessageBox не использует HWND, так что и тут Вы соврамши. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Понедельник, 03 Августа 2015, 16:17
P.S. А "hello word" через MessageBox не использует HWND, так что и тут Вы соврамши.
Целью был перенос «Hello, world!!!» в окно. Так? Так. Где ваши «начинает весить десятки килобайт исходного текста»?
ЦитатаGudleifr ()
Если, Вас интересует то, что я действительно думаю о Win API в подробностях, см. http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\5.FOBOS
Меня не интересует, что Вы думаете о WinAPI, к моему счастью)
ЦитатаGudleifr ()
А, здесь, я повторю: отсылать человека, пытающегося найти простое программное решение к Мастдайной документтации - это заведомое вредительство.
Собственно,
ЦитатаAlkosha ()
В планах WinApi.
ЦитатаAlkosha ()
А сделать сопряжение того же WinAPI с SDL2 (чтоб в одном окне был и SDL-евский рендерер и там же WinAPIшные кнопки, текст-филды, чекбоксы и тд. ) я не знаю как.
Я, написал, примерный план действий, грубый, конечно, но все же, как попробовать подружить SDL2 и WinAPI. Читаем, думаем, что же я написал после этого?
ЦитатаGudleifr ()
Кстати напомнило, как я впервые полез в тогда еще Win-SDK. Выглядел мой серфинг так: - Как создать кнопку в окне общего вида? - Кнопка создается в диалоговом окне путем... - А в окне общего вида? - Окно общего вида - это... - А как туда засунуть кнопку? - Кнопку? - Да. - В окно общего вида? - Да. - Диалоговое окно отличается от окна общего вида тем, что... И чтобы разместить кнопку в диалоговом окне надо...
Я, написал, примерный план действий, грубый, конечно, но все же, как попробовать подружить SDL2 и WinAPI.
Еще раз повторяю: фигню написали. Будете троллить дальше, начну карму минусовать. Или Вы MS-бот? Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.