Răsfoiți Sursa

Refactored text scenes, still need to do levels

bennewlin 2 ani în urmă
părinte
comite
3eb81be340

+ 10 - 13
src/Scenes/BaseScene.ts → src/Scenes/BaseText.ts

@@ -1,9 +1,8 @@
-// welcome
 import { TextButtonObject } from "../Objects/TextButtonObject";
 
-export default class BaseScene extends Phaser.Scene {
-    constructor() {
-        super({ key: 'BaseScene' });
+export default class BaseText extends Phaser.Scene {
+    constructor(keyName: string) {
+        super(keyName);
     }
 
     preload(){
@@ -12,18 +11,16 @@ export default class BaseScene extends Phaser.Scene {
 
     create() { 
         this.add.image(500, 500, 'background');     
-        this.add.text(this.cameras.main.centerX, this.cameras.main.centerY * 0.25, 'Reflect', { fontSize: '32px' }).setOrigin(0.5, 0.5);
+        this.add.text(this.cameras.main.centerX, this.cameras.main.centerY * 0.25, 'Reflect', { fontSize: '32px' }).setOrigin(0.5, 0.5);  
+    }
+    
 
+    addTextButton(buttonLabel: string, sceneName: string, heightnum: number){
         // creates the text button object to start tutorial & adds to scene 
-        this.add.existing(new TextButtonObject(this, 400, 
-        "Start Tutorial", () => {
-            // starts up the tutorial scene when clicked
-            this.scene.start('TutorialScene');
-        }))       
-        this.add.existing(new TextButtonObject(this, 500, 
-        "Play Game", () => {
+        this.add.existing(new TextButtonObject(this, heightnum / 2, 
+        buttonLabel, () => {
             // starts up the tutorial scene when clicked
-            this.scene.start('HelloWorldScene');
+            this.scene.start(sceneName);
         }))  
     }
 

+ 8 - 21
src/Scenes/EndScene.ts

@@ -1,29 +1,16 @@
-// you win
-import { TextButtonObject } from "../Objects/TextButtonObject";
-export default class EndScene extends Phaser.Scene {
-    constructor() {
-        super({ key: 'EndScene' });
-    }
+import BaseText from "./BaseText";
 
-    preload(){
-        this.load.image('background','./assets/images/background.png' )
+export default class EndScene extends BaseText {
+    constructor() {
+        super('EndScene');
     }
 
     create() { 
-        this.add.image(500, 500, 'background');     
-        this.add.text(this.cameras.main.centerX, this.cameras.main.centerY * 0.25, 'You Win', { fontSize: '32px' }).setOrigin(0.5, 0.5);
 
-        // creates the text button object to start tutorial & adds to scene 
-        this.add.existing(new TextButtonObject(this, 400, 
-            "Start Tutorial Again", () => {
-                // starts up the tutorial scene when clicked
-                this.scene.start('TutorialScene');
-            }))       
-            this.add.existing(new TextButtonObject(this, 500, 
-            "Start Over", () => {
-                // starts up the tutorial scene when clicked
-                this.scene.start('HelloWorldScene');
-            }))  
+        super.create();
+
+        this.addTextButton("Start Tutorial Again", 'TutorialScene', 400)
+        this.addTextButton("Start Over", "LevelOne", 500)
     }
 
 }

+ 2 - 3
src/Scenes/HelloWorldScene.ts → src/Scenes/LevelOne.ts

@@ -1,4 +1,3 @@
-//aka level 1
 import Phaser from 'phaser'
 import Gate from "../Objects/Gate";
 import Switch from "../Objects/Switch";
@@ -7,7 +6,7 @@ import Player  from '../Objects/Player';
 //import Player from "./Objects/Player";
 
 
-export default class HelloWorldScene extends Phaser.Scene {
+export default class LevelOne extends Phaser.Scene {
     //Sprite creation
     private switches?: Phaser.Physics.Arcade.Group;
     private switchArray: Switch[] = [];
@@ -26,7 +25,7 @@ export default class HelloWorldScene extends Phaser.Scene {
     private resetText: Phaser.GameObjects.Text | undefined;
 
     constructor() {
-        super('HelloWorldScene')
+        super('LevelOne')
     }
 
     preload() {

+ 16 - 0
src/Scenes/StartScreen.ts

@@ -0,0 +1,16 @@
+import BaseText from "./BaseText";
+
+export default class StartScreen extends BaseText {
+    constructor() {
+        super('StartScreen');
+    }
+
+    create() { 
+
+        super.create();
+
+        this.addTextButton("Start Tutorial", "TutorialScene", 400)
+        this.addTextButton("Play Game", "LevelOne", 500)
+    }
+
+}

+ 7 - 21
src/Scenes/TutorialScene.ts

@@ -1,33 +1,19 @@
-import  {TextButtonObject} from '../Objects/TextButtonObject';
+import BaseText from "./BaseText";
 
-
-export default class TutorialScene extends Phaser.Scene {
-
-    preload(){
-        //this.load.image('background2','./assets/background2.png' )
-    }
+export default class TutorialScene extends BaseText {
     constructor() {
-        super({ key: 'TutorialScene' });
+        super('TutorialScene');
         console.log("in tutorial scene constructor");
     }
 
+    create() { 
 
-    create() {
-        //this.add.image(200,200,'background2');  
-
+        super.create();
 
         this.add.text(0, this.scale.height, "Unlock the gates to get next level.").setOrigin(0, 1);
 
-        // creates the text button to move to a different level & adds to scene 
-        this.add.existing(new TextButtonObject(this, 300, "Level 1", () => {
-            this.scene.start("HelloWorldScene");
-        }))
-        // creates the text button to move to a different level & adds to scene 
-        this.add.existing(new TextButtonObject(this, 350, "Level 2", () => {
-            this.scene.start("LevelTwo");
-        }))
-        
-        
+        this.addTextButton('Level 1', 'LevelOne', 300)
+        this.addTextButton("Level 2", "LevelTwo", 350)
     }
 
 }

+ 3 - 4
src/main.ts

@@ -1,11 +1,10 @@
 import Phaser from 'phaser'
 
-import HelloWorldScene from './Scenes/HelloWorldScene'
-import BaseScene from "./Scenes/BaseScene";
+import StartScreen from "./Scenes/StartScreen";
 import TutorialScene from './Scenes/TutorialScene';
 import EndScene from './Scenes/EndScene';
 
-
+import LevelOne from './Scenes/LevelOne'
 import LevelTwo from './Scenes/LevelTwo'
 
 const config: Phaser.Types.Core.GameConfig = {
@@ -19,7 +18,7 @@ const config: Phaser.Types.Core.GameConfig = {
 			gravity: { y: 400 },
 		},
 	},
-	scene: [BaseScene, TutorialScene, HelloWorldScene, LevelTwo, EndScene]
+	scene: [StartScreen, TutorialScene, LevelOne, LevelTwo, EndScene]
 }
 
 export default new Phaser.Game(config)