| Пример изометрической проекции |
|
sanek-x107
| Дата: Вторник, 07.09.2010, 00:22 | Сообщение # 1 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
Это пример именно изометрической проекции, а не типичной изометрии, применяемой в играх. Тормозит жутко, но, я думаю, это поправимо... управление на стрелках. См. комнату. Пока недоделал, сыровато очень. Сделано на GM8 Pro.
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
DreamRunner
| Дата: Вторник, 07.09.2010, 10:35 | Сообщение # 2 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
Во первых карта зеркально отражена:) это будет неудобно. Во-вторых тормозить тут нечему. Я пробежался по коду, в степах какие то непонятные вычисления, хотя блоки не должны иметь кода. Всё происходит в игроке, а от игрока требуется только менять свою глубину и следить за столкновениями на виде сверху.
|
| |
| | |
|
sanek-x107
| Дата: Вторник, 07.09.2010, 17:31 | Сообщение # 3 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
В блоках этот код - добавление треугольников в список ds_priority треугольников для прорисовки в o_controll, подобие события draw. o_controll их рисует, при этом обнуляя список. Потом опять добавляется, рисуется, очищается и т.д. каждый степ, наверное поэтому и тормозит из-за проецирования как раз. Надо бы сделать так, чтобы запоминались не координаты треугольника, а кординаты его проекции... в общем, оптимизировать буду, работы еще много, я просто выложил на обозрение.
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
DreamRunner
| Дата: Вторник, 07.09.2010, 19:19 | Сообщение # 4 |
Админ
Группа: Админы
Сообщений: 1382
Статус: Offline
|
sanek-x107, Так а что делают эти треугольники? У тебя 3д? Сорри, не вникал в код особо, просто хочу понять чем твой пример отличается от обычного метода с тайлами.
|
| |
| | |
|
sanek-x107
| Дата: Вторник, 07.09.2010, 20:52 | Сообщение # 5 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
Quote (DreamRunner) У тебя 3д? В том-то и весь прикол примера, что да =) Тут уже куб не просто тайл, а именно структура из 6 граней, 12 треугольников и 36 (не 8, так как каждому треугольнику по 3 точки, пока сами знаете какой возможности нет) вершин. Наверняка потому и тормозит. кстати, см. o_controll, событие create, переменные global.angle1 и global.angle2. Это отклонение оси x и y от 270 градусов (вниз) соответственно. 45,45 - грамотная изометрическая, 90, 45 - диметрическая, 60,60 - стоит по стандарту, не классическая, но красивая изометрия, с более удобного "угла обзора". Кстати, теоретически эти кубики можно вращать, но мне просто влом было с lengthdir_x и lengthdir_y возится, как-нибудь исправлюсь. Сейчас правда самое важное - найти причину тормозам. Добавлено (07.09.2010, 20:52) --------------------------------------------- забыл сказать, на заметку. Это не стандартное гм3д даже, это именно вычисление проекции а затем рисование ее при помощи стандартных 2D-примитивов гамака. Процесс проекции надо бы ускорить.
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
DragonSkiN
| Дата: Вторник, 07.09.2010, 21:21 | Сообщение # 6 |
Всех уже задолбал
Группа: Страж
Сообщений: 1180
Статус: Offline
|
Quote (sanek-x107) 45,45 - грамотная изометрическая А нам в курсе инженерной графики походу врали ;) Вроде ж по 30 градусов должно быть? А в играх часто около 27 градусов. фэйл?
http://gamegraphycs.do.am/ - сайт о 2D графике http://dragonskin.ath.cx:777/- доступ по хттп к сборнику ресурсов для игр
Сообщение отредактировал DragonSkiN - Вторник, 07.09.2010, 21:32 |
| |
| | |
|
sanek-x107
| Дата: Среда, 08.09.2010, 16:25 | Сообщение # 7 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
Да уж, фэйл, ступил. Всегда думал 135-45-135. Спасибо за инфу... Добавлено (08.09.2010, 16:25) --------------------------------------------- Кста, нашел причину тормозам. Дало в том, что каждый степ 600 элементов добавляются в ds_priority и потом из него же удаляются. Надо придумать что-нибудь бы.
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
WertyXBOCT
| Дата: Среда, 08.09.2010, 23:19 | Сообщение # 8 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
sanek-x107, во первых, куб состоит из видимых граней.Поэтому добавлять все 6 бессмысленно. Вообще, список этот чистить тоже не имеет под собой особого смысла. Статические предметы останутся на тех же местах, все что от тебя требуется менять приоритет динамических объектов. В итоге: 1) Модель куба состоит из трех граней и шести треугольников. Если память меня не подводит то ~10 точек в легкую(полоску из треугольников создать можно, в принципе, если помучаешься, можно и 7 точек сделать). // Таким образом, количество треугольников сократили в два раза 2) Во время инициализации уровня, создаешь список отображения статических моделей. 3) Добавляешь динамические модельки 4) Отрисовываешь 5) Удаляешь динамические модели 6) GOTO 3. Собственно вот такой конвеер.
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| | |
|
sanek-x107
| Дата: Четверг, 09.09.2010, 19:51 | Сообщение # 9 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
|
WertyXBOCT, попробую осуществлить, спасибо. Кстати, по поводу первого ты не прав - а если куб вращается?
http://gmbook.sx107.netai.net Мама, я - дебил!
|
| |
| | |
|
WertyXBOCT
| Дата: Четверг, 09.09.2010, 20:06 | Сообщение # 10 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
|
sanek-x107, куб чаще всего имеет одинаковую текстуру, единственное что поменяется, так это положение. anyway поменяешь текстуру на соответствующую для этой стороны. Постоянно держать в списке отображения невидимые грани бесмысленно. Кстати, идея, ищи невидимые грани. Т.е. повернул карту, создал новый список отображения, нашел в нем грани, которые невидны, убрал их оттуда.
Blog:www.WeslomPo.ru mailto: i@weslompo.ru
|
| |
| |
|
|