Создание галактики
Мой план состоял в том, чтобы процедурно создать модель галактики, которая могла бы поместить звездные данные в контекст — и, надеюсь, дать потрясающее представление о нашем месте в Млечном Пути.
![Ранний прототип галактики.](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/S5ZbLFPB3RnfRTOT35mW.png?hl=ru)
Чтобы создать Млечный Путь, я породил 100 000 частиц и поместил их по спирали, имитируя способ формирования галактических рукавов. Меня не слишком беспокоили особенности формирования спиральных рукавов, потому что это была бы репрезентативная модель, а не математическая. Однако я попытался получить более или менее правильное количество спиральных рукавов и их вращение в «правильном направлении».
В более поздних версиях модели Млечного Пути я отказался от использования частиц в пользу плоского изображения галактики, сопровождающего частицы, надеясь придать ему более фотографический вид. Настоящее изображение представляет собой спиральную галактику NGC 1232, находящуюся примерно в 70 миллионах световых лет от нас, изображение обработано так, чтобы оно выглядело как Млечный Путь.
![Выясняем масштаб галактики.](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/dQZVXko0eZdufru9zpqr.png?hl=ru)
![Подбросить](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/73JKSfkcxMnLw661RnKA.png?hl=ru)
Находим свой кадр
После того, как вы нашли нужную строку в инструменте трассировки для своей игры, следующим шагом будет поиск основного цикла. Основной цикл выглядит как повторяющийся шаблон в данных трассировки. Вы можете перемещаться по данным трассировки, используя клавиши W, A, S, D: A и D для перемещения влево или вправо (назад и вперед во времени) и W и S для увеличения и уменьшения масштаба данных. Вы ожидаете, что ваш основной цикл будет повторяться каждые 16 миллисекунд, если ваша игра работает на частоте 60 Гц.
![Похоже на три кадра казни](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/OaqgG1IveqQcmrvLbeHs.png?hl=ru)
Как только вы определите пульс вашей игры, вы сможете понять, что именно ваш код делает в каждом кадре. Используйте W, A, S, D для увеличения масштаба, пока не сможете прочитать текст в функциональных полях.
![Глубоко в кадре исполнения](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/LZZ7mv7XoGiC01rIOaWh.png?hl=ru)
Используйте переводы для перемещения между представлениями
![Перевод между двумя представлениями.](https://web.developers.google.cn/static/examples/images/image/T4FyVKpzu4WKF1kBNvXepbi08t52/ZbdixE36RlDboM08jwGH.gif?hl=ru)
Чтобы упростить жизнь, предположим, что существует два представления: представление списка и представление подробностей. Когда пользователь касается элемента списка внутри представления списка, представление подробностей выдвигается вперед, а представление списка выдвигается.
Чтобы добиться этого эффекта, вам понадобится контейнер для обоих представлений, в котором установлено overflow: hidden
. Таким образом, оба представления могут находиться внутри контейнера рядом, не показывая горизонтальных полос прокрутки, и каждое представление может перемещаться из стороны в сторону внутри контейнера по мере необходимости.