/// <summary> /// /// </summary> /// <param name="g"></param> public TetrisGame(Graphics g) { Drawing = g; Background = new SolidBrush(Color.Gray); CurrentBlock = new BlockStruct(rnd.Next(7)); Solids = new List <Block>(); Holder = new List <BlockStruct>(); Running = true; Score = 0; Level = 0; TetrisCount = 0; }
public void Hold() { if (Holder.Count > 0) { Holder.Add(CurrentBlock.SetHold()); CurrentBlock = new BlockStruct(Holder[0].GetTypeNum()); Holder.RemoveAt(0); } else { Holder.Add(CurrentBlock.SetHold()); CurrentBlock = new BlockStruct(rnd.Next(7)); } }
/// <summary> /// Funktionen som körs varje tick: /// Stoppar timern -> Målar bakgrunden vit -> Uppdaterar ormens position -> Kollar kollisioner -> Målar ut Mat och orm -> Startar timern igen /// </summary> /// <param name="myObject"></param> /// <param name="gameEvent"></param> public void GameLoop(Object myObject, EventArgs gameEvent) { Timer.Stop(); if (Collisions() || CurrentBlock.FallingUpdate()) { foreach (Block part in CurrentBlock.GetParts()) { Solids.Add(part); } CurrentBlock = new BlockStruct(rnd.Next(7)); } CheckTetris(); DrawAll(); CheckDead(); Timer.Enabled = true; }