Skip to main content
kglad
Community Expert
Community Expert
January 1, 2023
Question

Re: design a simple a choose your own adventure text based game

  • January 1, 2023
  • 1 reply
  • 219 views

this is the code needed to fix a previous post:

 

// in the fla:

if(!this.alreadyExecuted){

var g = new Game(exportRoot, this);

this.alreadyExecuted = true;

}

 

// comment out (most likely) problematic non-existent canvas

class Game {

constructor(root, lib) {
this.root = root;
this.stage = this.root.stage;
this.canvas = this.root.canvas;
this.messageField = this.root.messageField;
this.lib = lib;
this.init();
this.keys ={};
}

init(e){
this.player = this.root.player_mc;
const game = this;
document.addEventListener("keydown", (e) => {
//console.log(`Key "${e.key}" pressed [event: keydown]`);
this.keys[e.key] = true;
});
document.addEventListener("keyup", (e) => {
//console.log(`Key "${e.key}" pressed [event: keyup]`);
this.keys[e.key] = false;
});

//Message display field

//this.canvas = document.getElementById("gameCanvas");
//console.log("canvas",this.stage);
//this.stage = new createjs.Stage(this.canvas);
this.messageField = new createjs.Text("Loading", "bold 24px Arial", "#00FFFF");
console.log("a",this.stage);
this.messageField.maxWidth = 1000;
this.messageField.textAlign = "center";
this.messageField.textBaseline = "middle";
this.messageField.x = canvas.width/2;
this.messageField.y = canvas.height/2;
this.stage.addChild(this.messageField);
this.stage.update(); //update the stage to show text
console.log(this.messageField.text);
}

}

    This topic has been closed for replies.

    1 reply

    Inspiring
    January 1, 2023

    Sorry kglad - this code didnt work for me - I got a maximum call stack size exceeded in the createjs.min.js

    kglad
    Community Expert
    kgladCommunity ExpertAuthor
    Community Expert
    January 1, 2023

    are you executing new Game() once only?

     

    if you think so, and if the code is on a timeline with more than one frame, explain 

    Inspiring
    January 1, 2023

    Sorry kglad there is no code on the timeline (and only one frame)  

    I have searched the index.html and can only find reference to "game" in these places

    <script src="game.js"></script> (to get the script)

    var canvas, stage, exportRoot, anim_container, dom_overlay_container, fnStartAnimation, game; (create the variable)

    and 

    function handleTick(event){
    if (game === undefined) game = new Game(exportRoot, stage);
    }

     

    so I think that means there is only one game()?