简体   繁体   中英

Using nested for loops to add to multidimensional array

Ok so i am creating a Breakout game and i need to create a method that creates rectangle objects for each of the bricks so i can implement hit detection, i already have a method so the bricks can be drawn out like this:

public void drawBricks(Graphics g)
 {
    g.setColor(brickColor);
    for(int i = 0; i<10; i++)
    {
        for(int a = 0; a<121; a+=30)
        {
            g.fillRect(x+(width*i)+(spacer*i), y +a, width, height);
            // spacer = 10, x and y = 5, width = 50, height = 20, if you need this...
        }    
    }


}

Now to the part I cant figure out. I want to create rectangle objects with the exact corresponding coordinates as drawn above and add them to an multidimensional array, but i need the y to start at 5 and increment by 30 for each row at a time. This is what i have so far: * Also I'm not sure if this is actually possible or not so let me know if you have an idea for another way i could do it.

public void setBricks()
{
    for(int i= 0; i<10;i++)
    {
        for(int a=0; a<5; a++)
        {
            bricks[i][a] = new Rectangle(x+(width*i)+(spacer*i), y +a, width, height); 
        }                         // any ideas how to get each y ^ coordinate equal to the one above
    } // i need the int variables to stay at 10 and 5 because of the size of the array.
}

Well, if you want y to start at 5 and increment by 30, use 5+a*30 :

public void setBricks()
{
    for(int i= 0; i<10;i++)
    {
        for(int a=0; a<5; a++)
        {
            bricks[i][a] = new Rectangle(x+(width*i)+(spacer*i), 5 + a*30, width, height); 
        }                         
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM