Search code examples
javascriptlinuxmelonjs

TypeError: game.HexRenderer is not a constructor on Linux Mint


I have:

HexRenderer.js:

/**
 * HexRenderer
 */
game.HexRenderer = game.HexRenderer || {};

game.HexRenderer = me.Renderable.extend({

    init : function() {
        //init logic
    },

    draw : function(context) {
       //draw logic
    },

    update : function() {
        return false;
    }
});

Play.js:

game.PlayScreen = me.ScreenObject.extend({
    /** 
     *  action to perform on state change
     */
    onResetEvent: function() {

        // load a level
        me.levelDirector.loadLevel("hextile");

        // reset the score
        game.data.score = 0;

        // add our HexRenderer to the game world
        //console.log(typeof(game.HexRenderer)); - undefined
        this.hexagonGrid = new game.HexRenderer(); // Error appears here
        me.game.world.addChild(this.hexagonGrid);
    },


    /** 
     *  action to perform when leaving this screen (state change)
     */
    onDestroyEvent: function() {
        // remove the HexRenderer from the game world
        me.game.world.removeChild(this.hexagonGrid);
    }
});

index.html:

    <!-- melonJS Library -->
    <!-- build:js js/app.min.js -->
    <script type="text/javascript" src="js/lib/melonJS-2.0.0.js"></script>

    <!-- Plugin(s) -->
    <script type="text/javascript" src="js/lib/plugins/debug/debugPanel.js"></script>

    <!-- Game Scripts -->
    <script type="text/javascript" src="js/melon/entities/HexRenderer.js"></script>
    <script type="text/javascript" src="js/melon/Game.js"></script>
    <script type="text/javascript" src="js/melon/Resources.js"></script>

    <script type="text/javascript" src="js/melon/entities/Entities.js"></script>

    <script type="text/javascript" src="js/melon/screens/Title.js"></script>
    <script type="text/javascript" src="js/melon/screens/Play.js"></script>

Code is based on melonjs tutorial.

On launching I see:

TypeError: game.HexRenderer is not a constructor

The thing is that everything works just fine in Windows, but doesn't work on Linux Mint(Tried in last chrome and firefox version).

Is it some trick ? What's the difference, how it related to OS?


Solution

  • Ah, it was very stupid issue.

    That was quite far from melonjs.

    On index.html I have:

    <script type="text/javascript" src="js/melon/entities/HexRenderer.js"></script>
    

    But file name was hexRenderer.js, I changed it to HexRenderer.js and everything started to work. Weird thing that it worked on windows...(See here)