Skip to main content
kglad
Community Expert
Community Expert
Jan 1, 2023 1:33 PM UTC
Question

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

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 is closed to new replies. Start a new post to keep the conversation going.

    4 replies

    Inspiring
    Jan 1, 2023 7:04 PM UTC

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

    Translate
    kglad
    Community Expert
    kgladCommunity ExpertAuthor
    Community Expert
    Jan 1, 2023 7:31 PM UTC

    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 

    Translate
    Inspiring
    Jan 1, 2023 7:56 PM UTC

    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()?

     

    Translate