访问javascript对象中的第i个数组
我在看一本书,上面有下面的代码,我似乎无法显示圆圈之间的线条。似乎是因为如果我这样做了访问javascript对象中的第i个数组,javascript,canvas,Javascript,Canvas,我在看一本书,上面有下面的代码,我似乎无法显示圆圈之间的线条。似乎是因为如果我这样做了 drawLine(context, 1, 1, 100, 100, 3); 但是,如果我这样做,它会起作用: drawLine(context, untangleGame.circles[1].x, 1, 100, 100, 3); 这行不通。所以我的问题是我如何获得这个值。这是一本使用jQuery的书中的一个例子 这段代码从第一个圆到另一个圆画一条线,然后在其他圆上迭代: for (var i = 0;
drawLine(context, 1, 1, 100, 100, 3);
但是,如果我这样做,它会起作用:
drawLine(context, untangleGame.circles[1].x, 1, 100, 100, 3);
这行不通。所以我的问题是我如何获得这个值。这是一本使用jQuery的书中的一个例子
这段代码从第一个圆到另一个圆画一条线,然后在其他圆上迭代:
for (var i = 0; i < untangleGame.circles.length; i++) {
var startPoint = untangleGame.circles[i];
for (var j = 0; j < i; j++) {
var endPoint = untangleGame.circles[j];
drawLine(context, startPoint.x, startPoint.y, endPoint.x, endPoint.y, 1);
untangleGame.lines.push(new Line(startPoint, endpoint,
untangleGame.thinLineThickness));
}
}
for(变量i=0;i
我举了一个例子:
我正在尝试的游戏名为解开游戏。您需要初始化解开游戏对象,请参阅此更新 基本上添加
var c=新的圆(x,y);解开游戏。圈。推(c)代码>绘制圆时
var canvas = document.getElementById('game');
// canvas height and width:
var width = canvas.width;
var height = canvas.height;
function Circle(x, y, radius) {
this.x = x;
this.y = y;
}
var context = canvas.getContext && canvas.getContext('2d');
function drawCircle(context, x, y, radius) {
context.fillStyle = 'green';
context.beginPath();
context.arc(x, y, radius, 0, Math.PI * 2, true);
context.closePath();
context.fill();
}
drawCircle(context, 100, 100, 10);
// draw random 5 circles:
var circleRadius = 10;
var circlesCount = 5;
// the game object:
var untangleGame = {
circles: [],
thinLineThickness: 1,
lines: []
};
for (var i = 0; i < circlesCount; i++) {
var x = Math.random() * width;
var y = Math.random() * height;
var c = new Circle(x, y);
untangleGame.circles.push(c);
drawCircle(context, x, y, 10);
}
// drawing line and line object:
function Line(startPoint, endpoint, thickness) {
this.startPoint = startPoint;
this.endPoint = endPoint;
this.thickness = thickness;
}
function drawLine(context, x1, y1, x2, y2, thickness) {
context.beginPath();
context.moveTo(x1, y1);
context.lineTo(x2, y2);
context.lineWidth = thickness;
context.strokeStyle = "#cfc";
context.stroke();
}
// checking that drawLine works
drawLine(context, 1, 1, 100, 100, 3);
for (var i = 0; i < untangleGame.circles.length; i++) {
var startPoint = untangleGame.circles[i];
for (var j = 0; j < i; j++) {
var endPoint = untangleGame.circles[j];
drawLine(context, startPoint.x, startPoint.y, endPoint.x, endPoint.y, 1);
untangleGame.lines.push(new Line(startPoint, endPoint,
untangleGame.thinLineThickness));
}
}
var canvas=document.getElementById('game');
//画布高度和宽度:
var width=canvas.width;
var height=canvas.height;
函数圆(x、y、半径){
这个.x=x;
这个。y=y;
}
var context=canvas.getContext&&canvas.getContext('2d');
函数drawCircle(上下文、x、y、半径){
context.fillStyle='green';
context.beginPath();
弧(x,y,半径,0,Math.PI*2,真);
closePath();
context.fill();
}
画圈(上下文,100,100,10);
//随机画5个圆圈:
循环变异系数=10;
var circlesCount=5;
//游戏对象:
var解开游戏={
圆圈:[],
厚度:1,
行:[]
};
对于(变量i=0;i
小提琴中没有任何东西填充解开游戏。圆圈
,因此循环不起任何作用。您在调试器中尝试过吗?我几乎没花什么时间就找到了那条线,看看它为什么不起作用。哈哈哈,是的,我太傻了。我错过了解开缠绕的游戏。圆圈。推(新圆圈(x,y,圆圈));圆圈循环中的线,不管多么新,它只画了一个随机的圆圈。啊,好吧,情节泄露了。关键是,这里发布的代码中没有任何东西可以说明这个问题。(代码可能还有其他问题,但那是另一天的事。)不,我真的不知道如何调试。有什么建议吗?我不只是瞎混。