Add fullscreen toggle functionality to menu scene with updated styling

- Added fullscreen menu option alongside existing start menu
- Implemented fullscreen toggle functionality using Phaser's scale manager
- Updated text styling for both menu items with consistent color scheme
- Modified tween animations to include the new fullscreen menu element
- Adjusted positioning and visual elements for better UI layout
This commit is contained in:
Brian Fertig 2025-09-07 11:13:16 -06:00
parent 98f8ad341f
commit 4c99fb84f7
1 changed files with 29 additions and 3 deletions

View File

@ -91,6 +91,7 @@ export class MenuScene extends Phaser.Scene {
// Setup Menu // Setup Menu
this.startMenu = this.add.image(300, 650, 'menuPlate').setOrigin(0.5).setScale(0); this.startMenu = this.add.image(300, 650, 'menuPlate').setOrigin(0.5).setScale(0);
this.fullscreenMenu = this.add.image(300, 250, 'menuPlate').setOrigin(0.5).setScale(0);
this.startMenu.preFX.addShadow(-5, -5, .005); this.startMenu.preFX.addShadow(-5, -5, .005);
// Make the start menu clickable // Make the start menu clickable
@ -123,16 +124,40 @@ export class MenuScene extends Phaser.Scene {
}); });
}); });
this.fullscreenMenu.setInteractive();
this.fullscreenMenu.on('pointerdown', () => {
if (this.scale.isFullscreen) {
this.scale.stopFullscreen();
} else {
this.scale.startFullscreen();
}
});
this.startMenuText = this.add.text(180, 630, 'New Game', { this.startMenuText = this.add.text(180, 630, 'New Game', {
fontFamily: 'royalAcid, arial', fontFamily: 'royalAcid, arial',
fontSize: '56px', fontSize: '56px',
fill: '#f375ed', // Primary color for the text fill: '#f375ed', // Primary color for the text
stroke: '#40faf6', // Secondary color for stroke (creates gradient effect) stroke: '#86710fff', // Secondary color for stroke (creates gradient effect)
strokeThickness: 2, strokeThickness: 2,
shadow: { shadow: {
offsetX: 3, offsetX: 3,
offsetY: 3, offsetY: 3,
color: '#1b426e', color: '#07121fff',
blur: 5,
fill: true
}
}).setAlpha(0);
this.toggleFullscreenText = this.add.text(160, 240, 'Toggle Fullscreen', {
fontFamily: 'royalAcid, arial',
fontSize: '36px',
fill: '#f375ed', // Primary color for the text
stroke: '#86710fff', // Secondary color for stroke (creates gradient effect)
strokeThickness: 2,
shadow: {
offsetX: 3,
offsetY: 3,
color: '#07121fff',
blur: 5, blur: 5,
fill: true fill: true
} }
@ -220,7 +245,7 @@ export class MenuScene extends Phaser.Scene {
// Start Button // Start Button
this.tweens.add({ this.tweens.add({
targets: this.startMenu, targets: [this.startMenu, this.fullscreenMenu],
angle: 1080, angle: 1080,
duration: 1000, duration: 1000,
scale: 1, scale: 1,
@ -229,6 +254,7 @@ export class MenuScene extends Phaser.Scene {
this.tweens.add({ this.tweens.add({
targets: [ targets: [
this.startMenuText, this.startMenuText,
this.toggleFullscreenText,
this.allyMenuText, this.allyMenuText,
this.allyMenuDifficulty, this.allyMenuDifficulty,
this.allyImage, this.allyImage,