我正在创建一个与从画布顶部落下的对象(圆圈)有关的游戏。我让这些圆圈在x坐标处随机生成,然后以恒定速率下降。我正在尝试编写一个碰撞算法,但似乎无法访问正在下降的圆的x坐标或宽度/高度。
这就是我创建圆圈并将它们放入数组的方式。 var projectiles = []已在我的代码顶部声明
function spawnEnemies()
{
var g1 = new createjs.Graphics();
g1.beginStroke('white').beginFill('red').drawCircle(Math.floor(Math.random() * 650) + 50, 50, 20);
var e = new createjs.Shape(g1);
projectiles.push(e);
stage.addChild(e);
}
这是我的碰撞算法,我试图访问圆圈的x和y坐标,并检索它们的宽度和高度。我使用console.log来检查并查看返回的值。对于p.x,每次返回值0,p.width返回NaN。我很困惑为什么p.x和p.width不起作用。
function checkCollision()
{
for (i = 0; i < projectiles.length; i++) {
var p = projectiles[i];
if((p.x + width) < ship.x)
{
hit = false;
}
else if(p.x > (ship.x + ship.image.width))
{
hit = false;
}
else if(p.y > (ship.y + ship.image.height))
{
hit = false;
}
else if((p.y + p.height) < ship.y)
{
hit = false;
}
else
{
hit = true;
console.log(p.x);
}
}
答案 0 :(得分:0)
x
的{{1}}和y
属性可用于翻译它。在您的代码中,您将它们保留为默认值(0)并在Shape的画布中的特定位置绘制圆圈。
如果您希望Shape
反映圆圈的位置,请考虑更改x
以始终在Shape的原点绘制圆圈,然后将其spawnEnemies
设置为所需位置。
x