我正在构建一个打字游戏,其中主要类需要可以从游戏中的任何位置访问。我试图模仿C#/ Unity / Actionscript处理类和实例的方式。
我想避免使用" modules / export"语法,因为我发现它有点违反直觉(为什么即使使用类,如果一切都是模块?),但也许这是我缺乏理解。
game.ts
class Game {
private score:number = 0;
constructor() {
var t = new Tank();
t.shootGun();
}
addScore(i:number){
this.score += i;
}
}
// now we create an instance of our game
var g = new Game();
tank.ts
class Tank {
constructor() {
}
shootGun() {
// I want to call a function on the 'g' instance created above
g.addScore("25");
}
}
我的问题是:坦克(或任何其他在游戏中的某个点运行的实例)如何调用" g"运行main.ts后创建的实例?
答案 0 :(得分:1)
这是你想要的吗?
class Tank {
constructor(public g: Game) {
}
shootGun() {
this.g.addScore(25);
}
}
class Game {
private score: number = 0;
constructor() {
var t = new Tank(this);
t.shootGun();
}
addScore(i: number) {
this.score += i;
}
}
// now we create an instance of our game
var g = new Game();