Create site free
Пример изометрической проекции - Примеры, статьи - Разработка игр на Game Maker (Simple Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Примеры, статьи » Пример изометрической проекции
Пример изометрической проекции
sanek-x107 Дата: Вторник, 07.09.2010, 00:22 | Сообщение # 1
Хоть палкой гони
Группа: Проверенные
Сообщений: 770
Статус: Offline
Это пример именно изометрической проекции, а не типичной изометрии, применяемой в играх. Тормозит жутко, но, я думаю, это поправимо... управление на стрелках. См. комнату.
Пока недоделал, сыровато очень. Сделано на GM8 Pro.
Прикрепления: iso.gmk(32Kb)


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 поменяешь текстуру на соответствующую для этой стороны. Постоянно держать в списке отображения невидимые грани бесмысленно. Кстати, идея, ищи невидимые грани. Т.е. повернул карту, создал новый список отображения, нашел в нем грани, которые невидны, убрал их оттуда. smile


Blog:www.WeslomPo.ru
mailto: i@weslompo.ru
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Примеры, статьи » Пример изометрической проекции
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход