Rather than creating a new question I decided to just edit this one:
I have an int rotate that holds the rotation for each block. 0 is normal, 1 is clockwise, 2 upside down... I'm able to change the variable by pressing Up on the keyboard, but the block won't change its rotation
private Vector2[] RotateBlock()
{
if (Rotate == 1)
{
if (Position == LeftLPosition)
{
LeftLPosition[0] = new Vector2(LeftLPosition[0].X + 20, LeftLPosition[0].Y + 20);
LeftLPosition[1] = new Vector2(LeftLPosition[1].X + 0, LeftLPosition[1].Y + 0);
LeftLPosition[2] = new Vector2(LeftLPosition[2].X - 20, LeftLPosition[2].Y - 20);
LeftLPosition[3] = new Vector2(LeftLPosition[3].X - 0, LeftLPosition[3].Y - 40);
return LeftLPosition;
}
This is just the first part of the method but it shows the main picture.
if (CheckKey(Keys.Up))
{
block.Rotate += 1;
RotateBlock();
}
This is in the block update method.
I've tried adding a block parameter to the method and using block.LeftLPosition = new Vector2() but that didn't work. I've also moved the line to call the method to different places in the update method and that didn't work either