我的情况是我正在使用 Box2DWeb 开发 Canvas 游戏,所以我有一个名为Sprite的类,它可以将图像绘制到 Canvas,我现在想创建一个PhysicsSprite类,该类从Sprite继承方法和属性。
我的雪碧类(Sprite.js):
Sprite = function (position, dimension, image) {
this.Position = position;
this.Dimension = dimension;
if (image)
this.Image = image;
...
this.Draw = function (g) {
...
}
...
};
我在PhysicsSprite (PhysicsSprite.js) 中设置原型,如下所示:
PhysicsSprite = function(position, dimension, world) {
this.prototype = new Sprite(position, dimension, undefined);
//alert(this.prototype.Position.X)
var body = CreateBody();
this.GetBody = function () { return body; }
this.Draw = function (g) {
...
}
function CreateBody () {
...
}
};
注意alert(this.prototype.Position.X),它确实提醒我位置,但是如果我将代码更改为this.Position.X,我会收到错误,同样,如果我有一个PhysicsSprite实例,我必须明确调用原型。
这让我认为我没有设置对象的原型,只是创建了一个名为 的属性prototype
,并将其设置为一个新的Sprite。
如果有人可以帮助我,并解释我做错了什么,那将不胜感激。我有阅读障碍,所以我总是拼错变量,这令人沮丧,所以这是我寻找的第一件事,但对我来说一切都很好。