JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块

问题描述

/* Constants for bricks */
var NUM_ROWS = 8;
var BRICK_TOP_OFFSET = 10;
var BRICK_SPACING = 2;
var NUM_BRICKS_PER_ROW = 10;
var BRICK_HEIGHT = 10;
var SPACE_FOR_BRICKS = getWidth() - (NUM_BRICKS_PER_ROW + 1) * BRICK_SPACING;
var BRICK_WIDTH = SPACE_FOR_BRICKS / NUM_BRICKS_PER_ROW;
var TOTAL_BRICKS;
var CURRENT_ROW=1;
var brickX = 0 + BRICK_SPACING;
var brickY = 0 + BRICK_TOP_OFFSET;
var dx = 4;
var dy = 4;
var color1= Color.red;
var BRICK_COLOR=0;
/* Constants for ball and paddle */
var PADDLE_WIDTH = 80;
var PADDLE_HEIGHT = 15;
var PADDLE_OFFSET = 10;

var BALL_RADIUS = 15;

function start(){
    wall();
    paddle();
    ball();
    setTimer(draw,20);
    mouseMoveMethod(movePaddle);
}

function rowColor(){
    
    if(BRICK_COLOR==20){
       color1 = Color.red;
    }
    else if(BRICK_COLOR==40){
           color1= Color.orange;
    }
    else if(BRICK_COLOR==60){
            color1= Color.green;
    }
    else if(BRICK_COLOR==80){
            color1= Color.blue;
     
    }
}

function bricks(x,y,color){
    var brick = new Rectangle(BRICK_WIDTH,BRICK_HEIGHT);
    brick.setPosition(x,y);
    brick.setColor(Color);
    add(brick);
}
function rows(y,BRICK_COLOR){
    var x = BRICK_SPACING;
    for(var i = 0; i < NUM_BRICKS_PER_ROW; i++){
        
        bricks(x,color1);
        x+= BRICK_WIDTH + BRICK_SPACING;
    }
}
function wall(){
    var y = BRICK_TOP_OFFSET;
    for(var i = 0; i < NUM_ROWS; i++){
        rows(y,i);
        y += BRICK_HEIGHT + BRICK_SPACING;
    }
}
function draw(){
    bounce();
    ball.move(dx,dy);
}

function ball(){
    ball = new Circle(BALL_RADIUS);
    ball.setPosition(getWidth()/2,getHeight()/2);
    add(ball);
}
function paddle(){
    paddle = new Rectangle(PADDLE_WIDTH,PADDLE_HEIGHT);
    paddle.setPosition(getWidth()/2-30,getHeight()/2+210);
    add(paddle);
}

function movePaddle(p){
    var x = p.getX(); 
    if(x<0){
        x=0;
    }
    paddle.setPosition(x,paddle.getY());
}
function bounce(){
    // Bounce off right wall
    if(ball.getX() + ball.geTradius() > getWidth()){
        dx = -dx;
    }
    // Bounce off left wall
    if(ball.getX() - ball.geTradius() < 0){
        dx = -dx;
    }
    // Bounce off bottom wall
    if(ball.getY() + ball.geTradius() > getHeight()){
        dy = -dy;
    }
    // Bounce off top wall
    if(ball.getY() - ball.geTradius() < 0){
        dy = -dy;
    }
    //Bounce of Paddle
    var ballElem = getElementAt(ball.getX(),ball.getY() + ball.geTradius());
    if (ballElem == paddle){
        dy = -dy;
    }
    
}

行应该是这样的,一旦球击中砖块,砖块就应该被摧毁:

img

我一直在尝试许多不同的方法来使行显示不同的颜色,就像它们在屏幕截图中显示的那样,但它总是变成纯色或像现在这样的黑色。我一直无法找到颜色或如何在被击中时摧毁砖块,所以如果你们能提供帮助,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)