# 7. Отображение хода игрока

Table of Contents

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

Цель

Игрок наглядно видит свою фазу хода и куда разрешено отпустить выбранный шар, не просчитывая путь вручную по сетке 8×14.

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

_start_human_turn выставляет _set_turn_banner("Ваш ход"). При первичном выборе шара и при переключении на другой занятый шар после _clear_selection() вызывается _refresh_player_move_hints().

Функция обходит все индексы: выбранная клетка получает SELECTED; каждая пустая клетка помечается REACHABLE, если _board.has_path(_selected_idx, i), иначе снимается только режим достижимости. _clear_selection() дополнительно вызывает _clear_reachable_highlights(), чтобы отмена выбора по повторному тапу убирала зелёноватый ореол с поля.

Фрагмент пересчёта подсказок:

func _refresh_player_move_hints() -> void:
if _busy or not _human_turn or _game_ended:
return
if _selected_idx < 0:
_clear_reachable_highlights()
return
for i in CELL_COUNT:
var cell := _grid.get_child(i) as CellView
if cell == null:
continue
if i == _selected_idx:
cell.set_highlight_kind(CellView.HighlightKind.SELECTED)
continue
if _board.cells[i] >= 0:
if cell.get_highlight_kind() == CellView.HighlightKind.REACHABLE:
cell.set_highlight_kind(CellView.HighlightKind.NONE)
continue
if _board.has_path(_selected_idx, i):
cell.set_highlight_kind(CellView.HighlightKind.REACHABLE)
else:
if cell.get_highlight_kind() == CellView.HighlightKind.REACHABLE:
cell.set_highlight_kind(CellView.HighlightKind.NONE)

При окончании партии баннер переводится в «Игра окончена» до показа диалога — это общий для обоих шагов маркер финала сессии.

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

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

Next: 11. Сохранение настроек игры
Аватар автора

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


godot Series

# 16. Тени

godot 16 / 19
4 min read

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

Read