Javascript 我想从数组中在画布上画一个圆?

Javascript 我想从数组中在画布上画一个圆?,javascript,canvas,Javascript,Canvas,我希望能够从在画布上画一个圆圈开始,然后推到一个数组上。这是行不通的 function Circle(x, y, r){ this.x = x; this.y = y; this.r = r; } // create an array var anArray = []; // make a circle instance var aCircle = new Circle(100, 100, 20)

我希望能够从在画布上画一个圆圈开始,然后推到一个数组上。这是行不通的

    function Circle(x, y, r){
        this.x = x;
        this.y = y;
        this.r = r;
    }

    // create an array
    var anArray = [];

    // make a circle instance
    var aCircle = new Circle(100, 100, 20);

    //add it to the array
    anArray.push(aCircle);

    function drawCircle() {
        context.beginPath();
        context.arc(anArry[0].x,anArry[0].y,anArry[0].r,0,Math.PI*2,true);
        context.closePath();
        context.fill();
代码:


帆布{
边框:5px实心#999;
背景色:#000000;
}
var语境;
var rightKey=false;
var leftKey=false;
var-upKey=false;
var downKey=false;
var块x;
var块y;
var block_h=15;
var块w=15;
var imageObj=新图像();
imageObj.src='spaceShip.jpg';
函数圆(x,y,r){
这个.x=x;
这个。y=y;
这个。r=r;
}
//创建一个数组
var anArray=[];
//做一个圆的例子
var aCircle=新的圆(100,100,20);
//将其添加到数组中
推(一圈);
函数drawCircle(){
context.beginPath();
arc(anArry[0].x,anArry[0].y,anArry[0].r,0,Math.PI*2,true);
closePath();
context.fill();
/*

对于(var i=0;i您的drawCircle()方法(anArryanArray)中有语法错误,下面是适用于我的更新代码:

function drawCircle() {
            context.beginPath();
            context.arc(anArray[0].x, anArray[0].y, anArray[0].r, 0, Math.PI*2, false);
            context.fillStyle = 'yellow';
            context.fill();
            //context.closePath();

            /*
            for(var i=0; i<numCircle; i++) {
                canvasContext.fillStyle='#123321;'
                drawCircle(anArry[0].x,anArry[0].y,anArry[0].r,canvasContext);
            }
            */
        }
函数drawCircle(){
context.beginPath();
arc(anArray[0].x,anArray[0].y,anArray[0].r,0,Math.PI*2,false);
context.fillStyle='yellow';
context.fill();
//closePath();
/*

对于(var i=0;iSo),您的圆是什么颜色?
<!DOCTYPE HTML>
<html>
  <head>
    <style>
        canvas {
            border: 5px solid #999;
            background-color: #000000;
        }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" type="text/javascript"></script>  
  </head>
<body>
<canvas id="myCanvas" width="450" height="610" style="border:3px solid #c3c3c3;">
</canvas>
<script>
        var context;
        var rightKey = false;
        var leftKey  = false;
        var upKey    = false;
        var downKey  = false;
        var block_x;
        var block_y;
        var block_h = 15;
        var block_w = 15;
        var shipCnt = 4; //keeps track of the number of ships that the player has left
        var levelCnt = 1; //keeps track of which level the player is on so that the correct colored mushroom is displayed
        var PLAYERNUM = 'PLAYER 1';
        var READY = 'READY!'; //Used to display on the start of every new life

        var imageObj = new Image();
        imageObj.src = 'spaceShip.jpg';

        function Circle(x, y, r){
            this.x = x;
            this.y = y;
            this.r = r;
        }

        // create an array
        var anArray = [];

        // make a circle instance
        var aCircle = new Circle(100, 100, 20);

        //add it to the array
        anArray.push(aCircle);

        function drawCircle() {
            context.beginPath();
            context.arc(anArray[0].x, anArray[0].y, anArray[0].r, 0, Math.PI*2, false);
            context.fillStyle = 'yellow';
            context.fill();
            //context.closePath();

            /*
            for(var i=0; i<numCircle; i++) {
                canvasContext.fillStyle='#123321;'
                drawCircle(anArry[0].x,anArry[0].y,anArry[0].r,canvasContext);
            }
            */
        }

        function drawScore() {
            context.fillStyle = "red";
            context.font = "bold 16px Arial";
            context.fillText("1000", 5, 15);

            context.fillStyle = "red";
            context.font = "bold 16px Arial";
            context.fillText("14500", 200, 15);
        }

        function drawExtraLives() {
            context.drawImage(imageObj, 45, 3);
            context.drawImage(imageObj, 60, 3);
            context.drawImage(imageObj, 75, 3);
        }

        function drawPlayerOne() {
            context.fillStyle = "yellow";
            context.font = "bold 20px Arial";
            context.fillText(PLAYERNUM, 175, 260);
        }

        function drawReady() {
            context.fillStyle = "yellow";
            context.font = "bold 20px Arial";
            context.fillText(READY, 185, 280);
        }

        function init() {
          context = $('#myCanvas')[0].getContext('2d');
          WIDTH = $('#myCanvas').width();
          HEIGHT = $('#myCanvas').height();
          block_x = WIDTH / 2 - 15;
          block_y = HEIGHT / 2 - 15;
          setInterval('draw()', 25);
        }

        function clearCanvas() {
          context.clearRect(0,0,WIDTH,HEIGHT);
        }

        function rect(x,y,w,h) {
          context.beginPath();
          context.rect(x,y,w,h);
          context.endPath();
        }

        function onKeyDown(evt) {
          if (evt.keyCode == 39) rightKey = true;
          else if (evt.keyCode == 37) leftKey = true;
          if (evt.keyCode == 38) upKey = true;
          else if (evt.keyCode == 40) downKey = true;
        }

        function onKeyUp(evt) {
          if (evt.keyCode == 39) rightKey = false;
          else if (evt.keyCode == 37) leftKey = false;
          if (evt.keyCode == 38) upKey = false;
          else if (evt.keyCode == 40) downKey = false;
        }

        function drawGameBottomLine() {
            context.beginPath();
            context.moveTo(0,530);
            context.lineTo(450,530);
            context.strokeStyle = 'yellow';
            context.stroke();
        }

        function draw() {
          clearCanvas();

          if (rightKey) 
            block_x += 5;
          else if (leftKey) 
            block_x -= 5;

          if (upKey) 
            block_y -= 5;
          else if (downKey) 
            block_y += 5;

          if (block_x <= 0) 
            block_x = 0;

          if ((block_x + block_w) >= WIDTH) 
            block_x = WIDTH - block_w;

          if (block_y <= 530) 
            block_y = 532;

          if ((block_y + block_h) >= HEIGHT) 
            block_y = HEIGHT - block_h;

          //all items that have to be redrawn go here.
          drawScore();  
          drawExtraLives();
          drawPlayerOne();
          drawReady();
          //drawCircle();
          drawGameBottomLine(); 
          context.drawImage(imageObj, block_x,block_y);
          //context.fillRect(block_x,block_y,block_w,block_h);
        }

$(document).keydown(onKeyDown);
$(document).keyup(onKeyUp);

init(); //This method sets up the init for the whole game (all things that have to be redraw will be in the draw method.
</script>
</body>
</html>
function drawCircle() {
            context.beginPath();
            context.arc(anArray[0].x, anArray[0].y, anArray[0].r, 0, Math.PI*2, false);
            context.fillStyle = 'yellow';
            context.fill();
            //context.closePath();

            /*
            for(var i=0; i<numCircle; i++) {
                canvasContext.fillStyle='#123321;'
                drawCircle(anArry[0].x,anArry[0].y,anArry[0].r,canvasContext);
            }
            */
        }