My:Abs — различия между версиями
WikiSysop (обсуждение | вклад) (→Экраны - сцены - объекты) |
WikiSysop (обсуждение | вклад) (→Экраны - сцены - объекты) |
||
Строка 71: | Строка 71: | ||
* Сцена на всех лейаутах имеет одинаковое расположение объектов, но различные координаты на экране и различный масштаб (например, поисковая сцена). | * Сцена на всех лейаутах имеет одинаковое расположение объектов, но различные координаты на экране и различный масштаб (например, поисковая сцена). | ||
* Сцена и объекты на ней имеют различное положение (например, элементы интерфейса) | * Сцена и объекты на ней имеют различное положение (например, элементы интерфейса) | ||
− | * Разный состав объектов на сцене в разных лейаутах (например, "бревна" разного вида для растяжения экрана, отсутствие некоторой кнопки и т.д.). | + | * Разный состав объектов на сцене в разных лейаутах (например, "бревна" разного вида для растяжения экрана, отсутствие некоторой кнопки, разные графические ресурсы для объекта и т.д.). |
=== Редактор сцен === | === Редактор сцен === |
Версия 13:07, 10 сентября 2011
Лейауты и данные
Лейауты
w | h | w/h | 1024/w | Устройство |
---|---|---|---|---|
480 | 320 | 1.50 | 2.13 | iphone |
480 | 320 | 1.50 | 2.13 | android старые |
800 | 480 | 1.67 | 1.28 | android типично |
800 | 480 | 1.67 | 1.28 | android планшеты |
854 | 480 | 1.78 | 1.20 | android телефоны |
960 | 640 | 1.50 | 1.07 | iphone |
960 | 540 | 1.78 | 1.07 | android новые |
1024 | 768 | 1.33 | 1.00 | ipad |
1024 | 600 | 1.71 | 1.00 | android планшеты |
1024 | 768 | 1.33 | 1.00 | android планшеты |
1280 | 800 | 1.60 | 0.80 | android планшеты |
Лейауты являются различными вариантами геометрических размеров экранов устройств. Возможны ситуации, когда лейауты отличаются:
- шириной и/или высотой
- только ориентацией (вертикальная-горизонтальная)
- масштабом (ширина и высота отличается в 2 раза)
Целесообразно покрывать 3 базовых отношения w/h:
1.33 | 1024x768 | других нет |
1.50 | 960x640, 480x320 | 2-кратная разница |
1.67 | 800x480, 960x540(-60), 854x480(-54), 1024x600(-24), 1280x800(-32) |
Остальные добивать интерфейсными полосками ("бревнами") слева-справа или сверху-снизу. Полоска может быть одна (типа кепшен окна) с линком на сайт. Может быть и две (по бокам или сверху-снизу). Если ухудшения графики не происходит, то не охваченные лейауты получаются растягиванием ближайших по w/h базовых лейаутов. Таким образом, имеем 3 отношения плюс 2-е ориентации (они будут не всегда), что даёт от 3 до 6 лейаутов.
В процессе разработки дизайна необходимо стремиться к уменьшению количества графики. Например, для хиденов область поиска объектов должна иметь универсальное w/h и горизонтальную ориентацию. Тогда основная подстройка лейаутов происходит для положения и размера списков предметов, размера (и возможно различной графики) интерфейсных элементов и т.п.
Экраны - сцены - объекты
Каждый лейаут состоит из набора экранов. Каждый экран содержит список сцен. Сцена состоит из объектов. Лейаутов может быть 1-6. Экранов: 1-1000. Сцен на экране: 1-10. Объектов на сцене: 1-1000.
Экран является контейнером для сцен и его геометрические размеры одинаковы для всех экранов данного лейаута. Тем не менее экран обладает визуальными свойствами:
- цвет (если фон на нем проявляется по alpha)
- время жизни (для хидена с ограничением времени)
Экраны объединяются логическими переходами (при помощи кнопок, таймера, ...) и являются основными блоками игры. Сцены на экране объединяют объекты в логические группы. Например, сцена интерфейсных элементов, сцена изображающая спрятанные объекты, сцена со списком того, что надо искать и т.д. Координаты объектов задаются относительно сцены. Поэтому перемещение сцены по экрану приводит к перемещению всех её объектов.
У сцены есть свойство stretch. Если оно активировано, графические объекты растягиваются по сцене (Q: а если нет данных о размерах до обрезки?). Дополнительно каждый лейаут может быть растянут как целое, но делает это вьювер.
Сцены и объекты на лейаутах могут оказаться в следующих ситуациях:
- Сцена на всех лейаутах имеет одинаковое расположение объектов, но различные координаты на экране и различный масштаб (например, поисковая сцена).
- Сцена и объекты на ней имеют различное положение (например, элементы интерфейса)
- Разный состав объектов на сцене в разных лейаутах (например, "бревна" разного вида для растяжения экрана, отсутствие некоторой кнопки, разные графические ресурсы для объекта и т.д.).
Редактор сцен
- Все типы лейаутов сразу заданы. Если нужно добавить лейаут в готовый проект, это осуществляется копированием уже существующего.
- При создании нового экрана он дублируется на всех лейаутах с одним и тем-же id. В дальнейшем с данного лейаута экран может быть удален, при этом диалоговое окно переспрашивает: "Удалить на всех лейаутах или только на данном?".
- При добавлении сцены, она добавляется на экраны всех лейаутов, где есть экран с данным id. Все такие сцены получают одинаковое id, но имеют, вообще говоря, различные свойства (координаты и т.п.). Удаление осуществляется аналогично удалению экрана.
- При добавлении объекта на сцену он добавляется на сцены всех лейаутов, если id сцены совпадает с id текущей. Удаление - как выше.
У каждой сцены и объекта есть целочисленное свойство "clone" ("клон"). С его помощью происходит объединение свойств сцен или объектов в группы клонов. Изменение свойства объекта автоматически приведет к изменению на всех лейаутах этого же свойства у всех объектов с данным id и номером клона. При создании у всех сцен и объектов параметр clone=1. У данной сцены на различных лейаутах clone может быть разным (разное положение на экране), а их объектов одинаковые (одинаковое положение относительно сцены). Сцена или объект с clone=0 полностью отвязаны от всех остальных сцен и объектов. Значения clone=1,2,... определяют группы объектов с одинаковыми свойствами (координатами, размерами и т.п.).
Таким образом, с точки зрения структуры данных все лейауты и сущности на них отвязаны друг от друга. Свойства id и clone используются редактором для коллективного, но выборочного изменения свойств сущностей.
Каждая сцена имеет интерпретируемый вьювером тип. В список предопределенных типов, пользователь может добавлять собственные типы. На данном лейауте можно потребовать установить координаты и/или размеры всех сцен данного типа на всех экранах. Например, решено сдвинуть поисковую сцену. Она двигается на данном экране и затем вызывается команда задать такие же свойства всем сценам данного типа (список отождествляемых свойств появляется в виде диалогового окна; свойства которые не надо отождествлять - убираются снятием галочки).