/// <summary> /// 加载页面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TetrisControl_Load(object sender, EventArgs e) { //后台事件 bgWorker = new BackgroundWorker(); bgWorker.WorkerSupportsCancellation = true; bgWorker.WorkerReportsProgress = true; bgWorker.DoWork += BgWorker_DoWork; bgWorker.ProgressChanged += BgWorker_ProgressChanged; bgWorker.RunWorkerCompleted += BgWorker_RunWorkerCompleted; //填充信息 for (int i = 0; i < 20; i++) { for (int j = 0; j < 10; j++) { Label lbl = new Label(); lbl.Name = string.Format("lblr{0}c{1}", i.ToString(), j.ToString()); lbl.Margin = new Padding(1); lbl.Padding = new Padding(1); lbl.BackColor = SystemColors.Control; //lbl.BorderStyle = BorderStyle.FixedSingle; lbl.Width = 15; lbl.Height = 15; lbl.Dock = DockStyle.Fill; tbControl.Controls.Add(lbl, j, i); } } //容器 if (tcontainer == null) { tcontainer = new TetrisContainer(); tcontainer.onPartialChanged += new Action <Point, Point[], TetrisDirection>(container_PartialChanged); tcontainer.onFullChanged += new Action <int[, ]>(container_FullChanged); tcontainer.onCompleted += new Action(container_Completed); } }
/// <summary> /// 移动元素 /// </summary> /// <param name="container"></param> /// <param name="element"></param> /// <param name="direction"></param> /// <returns></returns> public static TetrisElement move(TetrisContainer container, TetrisElement element, TetrisDirection direction) { return(container.change(element, direction)); }