使用 javascript 从数组中的特定对象获取 x 和 y 坐标
getting an x and y coordinate from a specific object in an array using javascript
我正在制作一款与从 canvas 顶部掉落的物体(圆圈)有关的游戏。我让这些圆圈在 x 坐标处随机生成,然后以恒定速率下降。我正在尝试编写碰撞算法,但似乎无法访问正在下落的圆圈的 x 坐标或 width/height。
这就是我创建圆圈并将它们放入数组中的方式。 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 returns 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);
}
}
Shape
的 x
和 y
属性可用于翻译它。在您的代码中,您将它们保留为默认值 (0),并在 Shape 的 canvas.
中的特定位置绘制圆圈
如果您希望 x
反映圆的位置,请考虑更改 spawnEnemies
以始终在 Shape 的原点绘制圆,然后将其 x
设置为所需的位置。
g1.(...).drawCircle(0, 50, 20);
var e = new createjs.Shape(g1);
e.x = Math.(...);
我正在制作一款与从 canvas 顶部掉落的物体(圆圈)有关的游戏。我让这些圆圈在 x 坐标处随机生成,然后以恒定速率下降。我正在尝试编写碰撞算法,但似乎无法访问正在下落的圆圈的 x 坐标或 width/height。
这就是我创建圆圈并将它们放入数组中的方式。 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 returns 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);
}
}
Shape
的 x
和 y
属性可用于翻译它。在您的代码中,您将它们保留为默认值 (0),并在 Shape 的 canvas.
如果您希望 x
反映圆的位置,请考虑更改 spawnEnemies
以始终在 Shape 的原点绘制圆,然后将其 x
设置为所需的位置。
g1.(...).drawCircle(0, 50, 20);
var e = new createjs.Shape(g1);
e.x = Math.(...);