我目前正在开发一款游戏,该游戏与火箭飞船四处移动以及物体(圆圈)从顶部掉落有关。这个游戏的目标是当物体从屏幕上掉下来时不要撞到它们。我在编写碰撞算法时遇到了问题。
我已经声明了 var hit = false;在我的代码的顶部 我还将所有圆圈放入一个名为“射弹”的数组中。
我相信我的逻辑是正确的,但我发现当调用 p.width 或 ship.width 时它返回 NaN。我尝试过使用 offsetWidth 但也不起作用。我想知道如何获取对象的宽度
底部的 else 语句只是检查 .width 是否返回正确的数字。一旦我让它工作,它将被删除并替换为碰撞算法的最终部分。
function checkCollision()
{
for (i = 0; i < projectiles.length; i++) {
var p = projectiles[i];
if((p.x + p.width) < ship.x)
{
hit = false;
}
else if(p.x > (ship.x + ship.width))
{
hit = false;
}
else if(p.y > (ship.y + ship.height))
{
hit = false;
}
else if((p.y + p.height) < ship.y)
{
hit = false;
}
else {
console.log(ship.x + ship.width);
}
最佳答案
在 createjs.Bitmap
的文档中不存在 .width
和 .height
属性。相反,访问它的 .image (HTMLImageElement)
定义了宽度和高度属性的属性:ship.image.width
和ship.image.height
。
关于javascript - 在 JavaScript 中调用 object.width 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42540333/