Maszynopis: prywatny członek jest nagle niezdefiniowany
Mam więc podstawową aplikację typu Maszynopis, która nie powinna powodować żadnych poważnych problemów, ale wygląda na to, że coś idzie nie tak i nie mam pojęcia co.
Mam tego prywatnego członkaminUpdateRate
w moimGameContainer
klasa, która jest inicjowana w konstruktorze. Wydaje się to dobrze, ponieważ kiedyGameContainer.start()
nazywa sięconsole.log()
metoda zostanie wydrukowana1
.
Jednak kiedyGameContainer.render()
metoda jest wywoływana, wydaje się, że jest poza zakresem lub czymś, na wyjściu z metody dziennikaundefined
tam.
Jestem całkiem nowy w TypeScript, a nie tak głęboko w JavaScript (zwłaszcza jeśli chodzi o zakresy, to jest dla mnie mylące: /). Jak jednak mogę to rozwiązać?
Klasa główna:
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;
}
}
Klasa kontenera gry:
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 jest wywoływany przez setInterval w obszarze skryptu:
var game = TwoDGame.main(context);
setInterval(game.getGameContainer().render, 16);