# 6. Отображение хода компьютера

Table of Contents

6. Отображение хода компьютера

Цель

Сделать ход противника читаемым: игрок видит, что сейчас очередь ИИ, и на долю секунды понимает, откуда и куда перемещается шар до начала пошаговой анимации по пустым клеткам.

Описание выполненной работы

В HUD добавлен центрированный баннер TurnLabel под строкой меню; при переходе к ИИ вызывается _set_turn_banner("Ход компьютера"). Для каждого жадного хода _ai_play_sequence вызывает _show_ai_move_hint_then_animate(from, to): на исходной и целевой CellView выставляются виды подсветки AI_FROM и AI_TO, пауза AI_MOVE_HINT_SEC (0,22 с), сброс подсветки и прежний await _animate_move_then_apply.

В CellView введён перечислимый тип HighlightKind и методы set_highlight_kind / get_highlight_kind; базовые состояния подкрашиваются через modulate, чтобы не плодить отдельные оверлеи.

Пример связки паузы и анимации в контроллере поля:

const AI_MOVE_HINT_SEC := 0.22
func _show_ai_move_hint_then_animate(from_idx: int, to_idx: int) -> void:
var fc := _grid.get_child(from_idx) as CellView
var tc := _grid.get_child(to_idx) as CellView
if fc:
fc.set_highlight_kind(CellView.HighlightKind.AI_FROM)
if tc:
tc.set_highlight_kind(CellView.HighlightKind.AI_TO)
await get_tree().create_timer(AI_MOVE_HINT_SEC).timeout
if is_instance_valid(fc):
fc.set_highlight_kind(CellView.HighlightKind.NONE)
if is_instance_valid(tc):
tc.set_highlight_kind(CellView.HighlightKind.NONE)
await _animate_move_then_apply(from_idx, to_idx)

Ссылка на проект: Third Planet

Ссылка на игру: Google Play Rustore

Next: 7. Отображение хода игрока
Аватар автора

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


godot Series

# 16. Тени

godot 16 / 19
4 min read

Тени через StyleBoxFlat у ячеек, HUD, слота баннера и карточки результата; стили кнопок на титуле и поле; лёгкий контактный затемнённый слой на шарах-планетах.

Read