I'm working on a C# tetris game, in my code i got a List<> of Rectangle Objects
private List<Rectangle> lstBlocks = new List<Rectangle>();
This list can contain a several types of rectangle collections, based on a random number (by generating a new TetrisBlock() )
public TetrisBlock(int size, int speelveldwith,Brush blockColor,int maxY)
{
this.size = size;
this.blockColor = blockColor;
this.maxY = maxY;
int x_pos;
x_pos = rnd.Next(0, speelveldwith - (size));
if (x_pos % size != 0)
{
x_pos = (x_pos / size) * size;
}
switch (rnd.Next(1, 8))
{
case 1:
// 4 blocks onder elkaar
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos, size * 2, size, size));
lstBlocks.Add(new Rectangle(x_pos, size * 3, size, size));
iObjectHeight = size * 4;
break;
case 2:
// L - Block
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos+size, size * 2, size, size));
lstBlocks.Add(new Rectangle(x_pos, size * 2, size, size));
iObjectHeight = 3 * size;
break;
case 3:
// I- met uitstekend puntje
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, size, size, size));
lstBlocks.Add(new Rectangle(x_pos, size * 2, size, size));
iObjectHeight = 3 * size;
break;
case 4:
//omgedraaide L
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos, size * 2, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, 0, size, size));
iObjectHeight = 3 * size;
break;
case 5:
//vierkantje
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, size, size, size));
iObjectHeight = 2 * size;
break;
case 6:
//rupsje
lstBlocks.Add(new Rectangle(x_pos, size, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, size, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos + size * 2, 0, size, size));
iObjectHeight = 2 * size;
break;
case 7:
//omgedraaid rupsje
lstBlocks.Add(new Rectangle(x_pos, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, 0, size, size));
lstBlocks.Add(new Rectangle(x_pos + size, size, size, size));
lstBlocks.Add(new Rectangle(x_pos + size * 2, size, size, size));
iObjectHeight = 2 * size;
break;
}
}
I have been working on paper to figure it out, but i'm stuck on rotating this collection of rectangles.
In this picture I have block case3
Does someone have some tips or hints for me?