javascript - 为什么五个圆圈没有全部绘制到 Canvas 上?

标签 javascript html canvas

我正在尝试在 Canvas 上随机绘制 5 个圆圈,希望有一天能将其制作成蜈蚣游戏。我已经设置了逻辑,以便 for 循环循环 5 个圆圈。然后有一个 do 循环,确保圆圈 X 和 Y 点位于 Canvas 中,因为在某些时候它们都必须位于数组中,以便我可以确定它们是否已被玩家击中。

如果坐标不好,那么我会在 do 循环中再次简单循环以获得另一组 X 和 Y 坐标。如果一对电线没问题,那么我输入 if 语句并将 isDrawable 设置为 TRUE。

问题:我需要更改什么简单的逻辑才能使其始终在 Canvas 上绘制 5 个可见圆圈?

代码:

function buildCircle() {
    for(var i=0; i<5; i++) {
      do { 
        isDrawable = false;
        radX = Math.random()*theCanvas.width;
        radY = Math.random()*theCanvas.height;
        radR = Math.random()*10+3;
console.log(i);
console.log(radX);   
console.log(radY);    
            if ((radX>5 && radX<435) && (radY>0 && radY<520)) {
                isDrawable = true;
                canvasContext.fillStyle='#123321;'  //getRandomColor();
                drawCircle(radX,radY,radR,canvasContext);
            }   
console.log(isDrawable);    
        } 
        while (isDrawable = false);
    }
}

enter image description here

最佳答案

我不确定我是否看到原始代码的问题,但如果您的问题是循环和 do/whilte,这应该可以工作并且可能更容易阅读:

var circlesLeft = 5;
while (circlesLeft) {
  //stuff
  if (draw_circle) {
    //draw circle
    --circlesLeft;
  }
}

我在您的代码中看到的唯一其他潜在问题是,如果两个圆选择相同(或非常接近相同)坐标,它们将无法处理,它们会重叠,并且当您绘制两个时,只有一个(最大的) )将可见。

关于javascript - 为什么五个圆圈没有全部绘制到 Canvas 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395763/

相关文章:

javascript - 绘制到 HTML Canvas 不正确地增长

html - 仅在元素的一侧添加框阴影模糊

jquery - 获取附加到 Fine Uploader 的元素的 div ID

javascript - jquery 动画滚动不起作用

javascript - 使用离屏渲染技术在 Canvas 上绘制多个图像

javascript - 旋转方法使所有东西旋转

javascript - instanceof操作符的理解

javascript - Breeze createEntity 类型无法识别

javascript - 在 iPad/iPhone 上使用 HTML5 视频全屏显示

javascript - Fabric.js : can't get the active groups anymore