为什么广场的尺寸不一样? (JavaScript的)

时间:2017-05-26 14:47:12

标签: javascript html

在变量square中,我将其定义为50x50大小,然后给它一个随机定位。它也有随机颜色。不过,它每次都不会是相同大小的方块。我该怎么做才能解决这个问题?

<html>
	<head>
	
		
	</head>
<body>

<p> Click Start Game to play </p>
<div id="start">Start Game</div>




<script>




function component(width, height, color, x, y, type) {
    this.type = type;
    if (type == "image"){
	this.image = new Image();
	this.image.src = color;
    }
    this.score = 0;
    this.width = width;
    this.height = height;
    this.speedX = 0;
    this.speedY = 0;    
    this.x = x;
    this.y = y;
    this.gravity = 0;
    this.gravitySpeed = 0;
    this.color=color;
    this.update = function() {
       random = Math.floor((Math.random()*100) + 1);
       random2 = Math.floor((Math.random()*100) + 1);
       function getRandomColor() {
           var letters = '0123456789ABCDEF';
           var color = '#';
           for (var i = 0; i < 6; i++ ) {
              color += letters[Math.floor(Math.random() * 16)];
            }
           return color;
       }
       randcolor=getRandomColor();
        ctx = myGameArea.context;
        if (this.type == "image"){
	    ctx.drawImage(this.image, random, random2, random,random2);
        } else {
            ctx.fillStyle = randcolor;
            ctx.fillRect(random, random2, random, random2);
        }
        this.x=random;
        this.y=random2;
        this.width=random;
        this.height=random2;
        this.color=randcolor;
    }

}
function startGame() {
	random = Math.floor((Math.random()*100) + 1);


	random2 = Math.floor((Math.random()*100) + 1);


	square = new component(50, 50, "green", random, random2);
myGameArea.start();
return square		
}



var myGameArea = {
    canvas : document.createElement("canvas"),
    start : function() {
	
        this.canvas.width = 450;
        this.canvas.height = 270;
        this.context = this.canvas.getContext("2d");
        document.body.insertBefore(this.canvas, document.body.childNodes[0]);
        
        this.interval = setInterval(updateGameArea, 1000);
        },
    clear : function() {
      this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
    }
}



function updateGameArea() {
    
    myGameArea.clear();
    square.update();

}

function userPiece() {
userSquare = new component(50,50, "green", 200,50);
return userSquare


}



document.getElementById("start").addEventListener('click', startGame);

</script>
</body>


</html>

1 个答案:

答案 0 :(得分:1)

您正在绘制具有随机尺寸的矩形。你需要像这样ctx.fillRect(random, random2, 50, 50);

进行绘图

<html>
	<head>
	
		
	</head>
<body>

<p> Click Start Game to play </p>
<div id="start">Start Game</div>




<script>




function component(width, height, color, x, y, type) {
    this.type = type;
    if (type == "image"){
	this.image = new Image();
	this.image.src = color;
    }
    this.score = 0;
    this.width = width;
    this.height = height;
    this.speedX = 0;
    this.speedY = 0;    
    this.x = x;
    this.y = y;
    this.gravity = 0;
    this.gravitySpeed = 0;
    this.color=color;
    this.update = function() {
       random = Math.floor((Math.random()*100) + 1);
       random2 = Math.floor((Math.random()*100) + 1);
       function getRandomColor() {
           var letters = '0123456789ABCDEF';
           var color = '#';
           for (var i = 0; i < 6; i++ ) {
              color += letters[Math.floor(Math.random() * 16)];
            }
           return color;
       }
       randcolor=getRandomColor();
        ctx = myGameArea.context;
        if (this.type == "image"){
	    ctx.drawImage(this.image, random, random2, random,random2);
        } else {
            ctx.fillStyle = randcolor;
            ctx.fillRect(random, random2, 50, 50);
        }
        this.x=random;
        this.y=random2;
        this.width=50;
        this.height=50;
        this.color=randcolor;
    }

}
function startGame() {
	random = Math.floor((Math.random()*100) + 1);


	random2 = Math.floor((Math.random()*100) + 1);


	square = new component(50, 50, "green", random, random2);
myGameArea.start();
return square		
}



var myGameArea = {
    canvas : document.createElement("canvas"),
    start : function() {
	
        this.canvas.width = 450;
        this.canvas.height = 270;
        this.context = this.canvas.getContext("2d");
        document.body.insertBefore(this.canvas, document.body.childNodes[0]);
        
        this.interval = setInterval(updateGameArea, 1000);
        },
    clear : function() {
      this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
    }
}



function updateGameArea() {
    
    myGameArea.clear();
    square.update();

}

function userPiece() {
userSquare = new component(50,50, "green", 200,50);
return userSquare


}



document.getElementById("start").addEventListener('click', startGame);

</script>
</body>


</html>

相关问题