Game Programming Patterns / Паттерны программирования в играх: 1.6. State

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Конечный автомат, при переходе в новое состояние, заменяет предыдущее.

bubenok 02.07.14 в 11:08

0

Автомат с магазинной памятью так же позволяет это делать, но так же предоставляет вам две дополнительные операции:

bubenok 02.07.14 в 11:09

0

Вы можете поместить новое состояние в стэк (push).

bubenok 02.07.14 в 11:10

0

Текущее состояние всегда будет вначале стэка, так что это будет переход к новому состоянию.

bubenok 02.07.14 в 11:11

0

Но он оставляет предыдущее состояние под текущим, а не отбрасывает его.

bubenok 02.07.14 в 11:12

0

Вы можете выкинуть самое верхнее состояние из стека (pop).

bubenok 02.07.14 в 11:14

0

В этом случае это состояние будет отброшено и состояние, бывшее под ним, станет новым текущим состоянием.

bubenok 02.07.14 в 11:15

0

Это именно то, что нам нужно для реализации стрельбы.

bubenok 02.07.14 в 11:15

0

Мы создаем всего одно состояние стрельбы.

bubenok 02.07.14 в 11:16

0

Когда кнопка стрельбы нажата в любом другом состоянии, мы помещаем состояние стрельбы в стэк.

bubenok 02.07.14 в 11:17

0

Когда анимация стрельбы прекращается, мы выталкиваем это состояние из стека и наш автомат переводит нас в то состояние, в котором мы были до этого.

bubenok 02.07.14 в 11:20

0

Итак, насколько они полезны?

bubenok 02.07.14 в 11:20

0

Даже со всеми этими расширениями конечные автоматы имеют довольно сильные ограничения.

bubenok 02.07.14 в 11:21

0

Тенденции в современных играх с искуственнм интеллектом, это использование таких захватывающих вещей, как поведенческие деревья и системы планирования.

bubenok 02.07.14 в 11:28

0

Если вы интересуетесь искуственным интеллектом. то эта статья лишь подогреет ваш интерес.

bubenok 02.07.14 в 11:29

0

Но чтобы удовлетворить его вам нужно читать другие книги.

bubenok 02.07.14 в 11:29

0

Это не означает, что конечные автоматы, автоматы с магазинной памятью и другие простые системы совсем бесполезны.

bubenok 02.07.14 в 11:30

0

Это отличные инструменты для решения определенного рода задач.

bubenok 02.07.14 в 11:31

0

Конечные автоматы будут полезны в следующих случаях:

bubenok 02.07.14 в 11:33

0

У вас есть объект, чье поведение изменяется на основе внешнего состояния.

bubenok 02.07.14 в 11:35

0

Состояние может быть жестко разделено на относительно небольшое количество различных опций.

bubenok 02.07.14 в 11:38

0

Объект реагирует на последовательность нажатий или событий во времени.

bubenok 02.07.14 в 11:39

0

В играх они наиболее известны тем, что используются в искуственном интеллекте, но так же они распространены в обработке пользовательского ввода, навигации по экранам меню, обработке текста, сетевых протоколах и другом асинхронном поведении.

bubenok 02.07.14 в 11:42

0
Минутку...

← Предыдущая страница