Mecanografiado: el miembro privado está repentinamente indefinido
Por lo tanto, tengo una aplicación básica de Typescript, que en realidad no debería causar problemas importantes, pero parece que algo va mal aquí y no tengo idea de qué.
Tengo este miembro privadominUpdateRate
en miGameContainer
Clase, que se inicializa en el constructor. Esto parece ir bien, porque cuandoGameContainer.start()
se llama, elconsole.log()
el método se imprimirá1
.
Sin embargo, cuando elGameContainer.render()
método se llama, parece estar fuera del alcance o algo así, las salidas del método de registroundefined
ahí.
Soy bastante nuevo en TypeScript y tampoco soy tan profundo en JavaScript (especialmente cuando se trata de ámbitos, me está confundiendo: /). ¿Cómo puedo sin embargo resolver esto?
Clase principal:
class TwoDGame extends Game {
public static main(context:CanvasRenderingContext2D) {
var game:Game = new TwoDGame();
var container:GameContainer = new GameContainer(context, game);
container.start();
return game;
}
}
Clase de contenedor de juego:
class GameContainer {
...
private minUpdateRate:number;
private game:Game;
private time:number;
...
constructor(context:CanvasRenderingContext2D, game:Game) {
...
this.minUpdateRate = 1;
this.game = game;
}
public start() {
...
console.log(this.minUpdateRate);
}
public render() {
var now:number = new Date().getMilliseconds();
var delta:number = now - this.time;
console.log(this.minUpdateRate);
if (delta > this.minUpdateRate) {
...
}
}
}
Render se llama a través de setInterval en el área de script:
var game = TwoDGame.main(context);
setInterval(game.getGameContainer().render, 16);