我已经为我一直在研究的游戏的 Player 类创建了一个 Javascript 对象,该游戏使用以下行从 Collidable 类“继承”:
Player.prototype = new Collidable(50, 50, 70);
这个 Collidable 类有一个 Vector 类的实例,它在我的代码中被实例化,例如:
this.pos = new Vector(x, y) || new Vector(50, 50);
我的问题是我可以很好地创建一个新的 Collidable 对象,并且里面的向量将具有在该new Collidable(x, y, diameter)
部分的前两个参数中给出的 x 和 y 的值。但是,当创建一个新玩家 ( current = new Player();
) 时,向量的 x 和 y 值变为 NaN。
下面我包含了 Collidable 构造函数和 Player 构造函数的代码。
可碰撞:
Collidable = function Collidable(x, y, d){
this.pos = new Vector(x, y) || new Vector(50, 50); // Position of centre
this.diam = d || 50; // Diameter
this.col = new Color().randomRGB(); // For debug
}
// More functions below
玩家:
Player = function Player(){
this.health = 100;
this.facing = 0;
this.sprites = new Image();
this.sprites.src = "./npc-oldman1.png";
this.spriteNo = 0;
this.moveSpeed = 2;
}
Player.prototype = new Collidable(50, 50, 70);
// More functions below
我怀疑这与这个问题有关,但无法弄清楚出了什么问题。
我的完整代码在这里可用。它应该做的是显示一个老人的图像,该图像移动到鼠标单击的位置(它会在开始时闪烁(50, 50)(创建播放器的位置),或者当您手动更改 pos 值时) . 在添加 Collisions 类之前,我已经让代码工作了。
提前致谢。