您需要定义这些属性为静态的,那么你可以很容易地访问它像这样,
export class Game {
static canvas: JQuery;
static CANVAS_WIDTH: number;
static CANVAS_HEIGHT: number;
bullet: Bullet;
constructor(canvasElem: JQuery) {
Game.canvas = canvasElem;
Game.CANVAS_WIDTH = Game.canvas.width();
Game.CANVAS_HEIGHT = Game.canvas.height();
}
}
export class Bullet {
x: number = 22;
y: number = 22;
public inBounds() {
// accessing static properties
return this.x >= 0 && this.x <= Game.CANVAS_WIDTH && this.y >= 0 && this.y <= Game.CANVAS_HEIGHT;
}
}
这编译为:
define(["require", "exports"], function(require, exports) {
var Game = (function() {
function Game(canvasElem) {
Game.canvas = canvasElem;
Game.CANVAS_WIDTH = Game.canvas.width();
Game.CANVAS_HEIGHT = Game.canvas.height();
}
return Game;
})();
exports.Game = Game;
var Bullet = (function() {
function Bullet() {
this.x = 22;
this.y = 22;
}
Bullet.prototype.inBounds = function() {
// accessing static properties
return this.x >= 0 && this.x <= Game.CANVAS_WIDTH && this.y >= 0 && this.y <= Game.CANVAS_HEIGHT;
};
return Bullet;
})();
exports.Bullet = Bullet;
});
//# sourceMappingURL=dhdh.js.map
您将在哪里设置CANVAS_WIDTH的值? –
在用Bullet类导入模块的游戏类中GameObjects = module(“GameObjects”) – Nikos
在Game类中有CANVAS_WIDTH,需要在Bullet类中访问它。我对吗? –