Пару вещей происходят между правым кликом и посыланием заклинания:
Как мы видели до этого, все взаимодействия мыши пользователя и
клавиатуры, проходят через объект Avatar. Когда объект Avatar определяет
правый
клик,
он
передаёт
событие
клика
в
HUD
через
AAvatar::MouseRightClicked().
Вспомните в Главе 10. Инвентарь и подбор предметов, мы использовали
класс struct Widget, чтобы отслеживать предметы которые взял игрок. Struct
Widget имеет только три элемента:
struct Widget
{
Icon icon;
FVector2D pos, size;
///.. и некоторые функции-члены
};
Нам нужно будет добавить дополнительные свойства для класса struct
Widget, чтобы запомнить заклинание которое он посылает.
HUD
определяет
если
событие
клика
было
внутри
Widget
в
AMyHUD::MouseRightClicked().
Если клик был по графическому элементу (Widget), который посылает
заклинание, затем HUD вызывает аватар обратно с запросом послать
заклинание, вызывая AAvatar::CastSpell().