Game Programming Patterns / Паттерны программирования в играх: 2.3. Update Method
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Все что он (Game Loop) знает - это то, что у них есть метод update(). Vladislav86 05.05.14 в 09:32 |
|
|
Так мы отделим объекты друг от друга и от игрового цикла. MrSmith33 05.05.14 в 16:15 |
||
|
На каждом фрейме (кадре), главный игровой цикл проходит по коллекции объектов и вызывает для каждого метод update(). Vladislav86 05.05.14 в 09:34 |
||
|
И каждый объект выполняет свои действия, которые должны быть выполнены за один фрейм. Vladislav86 05.05.14 в 09:37 |
||
|
Вызов этого метода для каждого объекта на каждом фрейме обеспечивает их одновременные действия. Vladislav86 05.05.14 в 09:45 |
||
|
Конечно, здесь можно придираться к словам и сказать, что все происходит не одновременно. fregate 26.09.14 в 04:20 |
||
|
Пока один объект обновляется, все остальные ждут. Vladislav86 05.05.14 в 09:49 |
||
|
Давайте рассмотрим это подробнее. Vladislav86 05.05.14 в 09:50 |
||
|
Главный игровой цикл содержит коллекцию динамических объектов, так что добавлять и удалять их в уровень также просто как и добавлять и удалять объекты в коллекцию. Vladislav86 05.05.14 в 09:56 |
+1 | |
|
И после этого вы можете через, например, какой-нибудь файл с данными, заполнить уровень именно так, как хочет этого наш дизайнер уровней. fregate 26.09.14 в 04:22 |
||
|
Паттерн adm244 11.03.15 в 01:36 |
||
|
Ировой мир обслуживает коллекцию объектов. fregate 26.09.14 в 04:23 |
||
|
Каждый объект имплементирует метод "update", который обновляет состояние для данного фрейма. fregate 26.09.14 в 04:24 |
||
|
Каждый фрейм игра обновляет каждый объект в коллекции. fregate 26.09.14 в 04:26 |
||
|
Когда использовать fregate 26.09.14 в 04:27 |
||
|
Большое количество игр с объектами, которые двигаются и с которыми игроку прходится взаимодействовать так или иначе используют данный паттерн. fregate 26.09.14 в 04:30 |
||
|
Если в игре есть космические пехотинцы, драконы, марсиане, привидения - это прекрасный повод использовать данный паттерн. fregate 26.09.14 в 04:31 |
||
|
Но если в игре движущихся объектов еще меньше, чем движений у игрока и игра больше похожа на шахматы - это не совсем подходящее решение. fregate 26.09.14 в 04:33 |
||
|
В таких играх вам не надо одновременно обновлять состояние всех объектов - возможно, что пешкам нет необходимости каждый кадр изменяться. fregate 26.09.14 в 04:36 |
||
|
Хотя, конечно, и для настольных игр вы, например, захотите добавить анимацию, которую будет необходимо пересчитывать каждый кадр. fregate 26.09.14 в 04:39 |
||
|
Тогда такой паттерн может вам в этом помочь. fregate 26.09.14 в 04:39 |
||
|
Update метод хорошо применим когда fregate 26.09.14 в 04:40 |
||
|
Ваша игра содержит какое-то число объектов или систем, которые необходимо одновременно обсчитывать. fregate 26.09.14 в 04:41 |
||
|
Поведение отдельно взятого объекта слабо зависит от остальных. fregate 26.09.14 в 04:41 |
||
|
Их поведение изменяется во времени. fregate 26.09.14 в 04:43 |
||
|
Помните fregate 26.09.14 в 04:43 |
||
|
Этот способ очень простой и в нем почти нет подводных камней. fregate 26.09.14 в 04:44 |
||
