Нажатие на кнопку
Отправим событие перезапуска по нажатию.
Добавим к кнопке компонент. node.input.onTap обрабатывает клик мыши и касание. По нажатию отправим RESTART_REQUESTED, а в FSM укажем, что делать с этим событием.
import { BaseComponent } from '@gamedevland/engine/layouts';
export class RestartButtonComponent extends BaseComponent {
private off: (() => void) | undefined;
protected override onEnable(): void {
this.off = this.node.input.onTap(() => {
this.node.events.emit({ type: 'RESTART_REQUESTED', data: {} });
});
}
protected override onDisable(): void {
this.off?.();
this.off = undefined;
}
}
Игрок нажимает кнопкуМышь или касание
onTapКомпонент отправляет RESTART_REQUESTED
FSMЗапускает перезапуск