import { SteamButton } from '../utils/uiComponents.js';
export default class MainMenuScene extends Phaser.Scene {
constructor() {
super({ key: 'MainMenuScene' });
}
// Сцена сама определяет, что ей нужно!
// Мы просто создали список-переменную прямо внутри класса
resources = [
{ key: 'menu_background', category: 'images', scene: 'menu'},
];
preload() {
console.log('MainMenuScene - загрузка');
let loadText = this.add.text(960, 540, 'Подождите, загрузка...',{
fontFamily: 'Roboto Slab',
fontSize: '40px',
fill: '#ff8c00'}).setOrigin(0.5);
const assetManager = this.registry.get('assetManager');
if (assetManager && this.resources){
this.resources.forEach( asset => {
const fullPath = assetManager.getImagePath(
asset.category,
asset.scene,
asset.key
)
if (asset.category === 'images') {
this.load.image(asset.key, fullPath);
}
})
}
}
create() {
console.log('MainMenuScene: Отрисовка экрана');
// Выводим фон по центру экрана (1920x1080)
this.add.image(960, 540, 'menu_background');
// Создаем обычную кнопку переключения сцены (без fetch)
const playBtn = new SteamButton(this, 960, 450, 'ИГРАТЬ', 'button');
playBtn.image.on('button_clicked', () => {
this.scene.start('CreatePersonScene'); // Переходим в игру
});
// Создаем кнопку, которая автоматически отправит POST-запрос на FastAPI!
// Она сама сделает fetch на http://127.0.0.1
const gaugeBtn = new SteamButton(this, 960, 600, 'НАГНЕТАТЬ ПАР', 'button', 'button_down');
// 1. Ставим кнопку фулскрина в правый верхний угол (координаты под разрешение 1920x1080)
let fsButton = this.add.image(200, 200, 'button')
.setInteractive({ useHandCursor: true })
.setScrollFactor(0); // Чтобы кнопка не улетала, если камера в игре будет двигаться
// 2. Логика ховера (подсветка при наведении)
fsButton.on('pointerover', () => fsButton.setTint(0xff8c00));
fsButton.on('pointerout', () => fsButton.clearTint());
// 3. Главная магия: переключение режима при клике
fsButton.on('pointerdown', () => {
// Проверяем, запущен ли уже полноэкранный режим внутри Phaser
if (this.scale.isFullscreen) {
// Если да — принудительно возвращаем игру обратно в окошко вкладки
this.scale.stopFullscreen();
console.log('Вышли из полноэкранного режима');
} else {
// Если нет — разворачиваем игру на весь монитор!
this.scale.startFullscreen();
console.log('Перешли в полноэкранный режим');
}
});
}
}