我正在尝试创建一个包含精灵对象的游戏对象类。我想我误解了一些根本性的东西。 编辑:精灵类可以工作但gameObj类没有。
function sprite(img) {
this.image = img;
this.w = img.width;
this.h = img.height;
}
function gameObj(img, x, y) {
var sp = sprite(img);
this.x = x;
this.y = y;
}
var aCircle = new sprite(circle);
var aGround = new gameObj(ground, 400,700);
答案 0 :(得分:1)
要将函数作为构造函数调用,请使用new
关键字。
var sp = new sprite(img);
这将使this
(在该函数内)引用“新对象”而不是正常上下文(window
,因为您尚未指定其他上下文)。
公约规定构造函数虽然是大写(Sprite
)。
答案 1 :(得分:1)
你错过了gameObj构造函数中的new
关键字:
var sp = new sprite(img);