Game Programming Patterns / Паттерны программирования в играх: 1.6. State
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Конечный автомат, при переходе в новое состояние, заменяет предыдущее. bubenok 02.07.14 в 11:08 |
|
|
Автомат с магазинной памятью так же позволяет это делать, но так же предоставляет вам две дополнительные операции: bubenok 02.07.14 в 11:09 |
||
|
Вы можете поместить новое состояние в стэк (push). bubenok 02.07.14 в 11:10 |
||
|
Текущее состояние всегда будет вначале стэка, так что это будет переход к новому состоянию. bubenok 02.07.14 в 11:11 |
||
|
Но он оставляет предыдущее состояние под текущим, а не отбрасывает его. bubenok 02.07.14 в 11:12 |
||
|
Вы можете выкинуть самое верхнее состояние из стека (pop). bubenok 02.07.14 в 11:14 |
||
|
В этом случае это состояние будет отброшено и состояние, бывшее под ним, станет новым текущим состоянием. bubenok 02.07.14 в 11:15 |
||
|
Это именно то, что нам нужно для реализации стрельбы. bubenok 02.07.14 в 11:15 |
||
|
Мы создаем всего одно состояние стрельбы. bubenok 02.07.14 в 11:16 |
||
|
Когда кнопка стрельбы нажата в любом другом состоянии, мы помещаем состояние стрельбы в стэк. bubenok 02.07.14 в 11:17 |
||
|
Когда анимация стрельбы прекращается, мы выталкиваем это состояние из стека и наш автомат переводит нас в то состояние, в котором мы были до этого. bubenok 02.07.14 в 11:20 |
||
|
Итак, насколько они полезны? bubenok 02.07.14 в 11:20 |
||
|
Даже со всеми этими расширениями конечные автоматы имеют довольно сильные ограничения. bubenok 02.07.14 в 11:21 |
||
|
Тенденции в современных играх с искуственнм интеллектом, это использование таких захватывающих вещей, как поведенческие деревья и системы планирования. bubenok 02.07.14 в 11:28 |
||
|
Если вы интересуетесь искуственным интеллектом. то эта статья лишь подогреет ваш интерес. bubenok 02.07.14 в 11:29 |
||
|
Но чтобы удовлетворить его вам нужно читать другие книги. bubenok 02.07.14 в 11:29 |
||
|
Это не означает, что конечные автоматы, автоматы с магазинной памятью и другие простые системы совсем бесполезны. bubenok 02.07.14 в 11:30 |
||
|
Это отличные инструменты для решения определенного рода задач. bubenok 02.07.14 в 11:31 |
||
|
Конечные автоматы будут полезны в следующих случаях: bubenok 02.07.14 в 11:33 |
||
|
У вас есть объект, чье поведение изменяется на основе внешнего состояния. bubenok 02.07.14 в 11:35 |
||
|
Состояние может быть жестко разделено на относительно небольшое количество различных опций. bubenok 02.07.14 в 11:38 |
||
|
Объект реагирует на последовательность нажатий или событий во времени. bubenok 02.07.14 в 11:39 |
||
|
В играх они наиболее известны тем, что используются в искуственном интеллекте, но так же они распространены в обработке пользовательского ввода, навигации по экранам меню, обработке текста, сетевых протоколах и другом асинхронном поведении. bubenok 02.07.14 в 11:42 |
