Удобное переключение между несколькими спрайтами кнопок (C#)

Итак, у меня есть пользовательский интерфейс, когда игрок открывает его, он может выбирать между несколькими героями (эти герои — кнопки). Дело в том, что герой может быть заблокирован, разблокирован или уже выбран, в зависимости от разных вещей. Таким образом, изображение/спрайт, который видит игрок, явно не будет таким же. Итак, какой самый удобный способ поменять местами спрайты всех героев, чтобы я поддерживал их в актуальном состоянии.

Я подумал, что иметь разные спрайты (заблокированные/разблокированные) для каждого героя было бы слишком, и, возможно, наложение спрайта разблокировки на другой спрайт для создания изображения блокировки поможет. Но как мне с этим поиграть.

Заранее спасибо, мой код на данный момент не будет полезен для того, что я прошу


person LodeRunner    schedule 23.08.2019    source источник
comment
а что не получилось?   -  person yes    schedule 23.08.2019


Ответы (1)


Если вы создадите свою кнопку таким образом в иерархии: введите здесь описание изображения

Если ButtonHero — это настоящая кнопка, а ButtonForeground — просто изображение, то вы можете поместить все, что хотите, перед главным изображением. Таким образом, вам не нужно иметь несколько изображений героя с чем-то впереди. Таким образом, изменяя спрайт переднего плана, вы получаете разные результаты:

По умолчанию: введите здесь описание изображения

Недоступно: введите здесь описание изображения

Заблокировано: введите здесь описание изображения

Точно так же, если вы поместите изображение героя на передний план, вы можете изменить фон, чтобы он выглядел выделенным:

введите здесь описание изображения

Так что это просто вопрос замены изображения переднего плана/фона.

person Nicklas C.    schedule 23.08.2019