七彩俄罗斯方块(Silverlight2.0)

来源:软件水平考试    发布时间:2012-11-04    软件水平考试视频    评论

  介绍
  使用 Silverlight 2.0(c#) 开发一个七彩俄罗斯方块
  玩法
  ↑ - 变形;← - 向左移动;→ - 向右移动;↓ - 向下移动
  在线DEMO
  点击这里查看效果
  思路
  1、每个形状都是由4个“块”组成的,也就是“块”是俄罗斯方块的最小单位,首先要有一个“块”的用户控件。要求可以设置“块”的位置和颜色
  2、经典俄罗斯方块一共7种形状,把每种形状所需要的功能抽象出来写一个抽象类,7个具体形状分别继承这个抽象类,并重写其抽象属性和抽象方法
  3、核心控制部分:在容器内铺满隐藏的“块”,上/下/左/右/控制形状的变形和移动,通过控制容器内“块”的颜色来响应变化,当形状下一步移动或变形的位置处已经有颜色时则禁止移动或变形,当形状下一步移动或变形的位置在底边有颜色或处于容器的底部则判断消行并生成新的形状
  关键代码
  1、形状抽象类
  PieceBase.cs
  using System;
  using System.Net;
  using System.Windows;
  using System.Windows.Controls;
  using System.Windows.Documents;
  using System.Windows.Ink;
  using System.Windows.Input;
  using System.Windows.Media;
  using System.Windows.Media.Animation;
  using System.Windows.Shapes;
  namespace YYTetris.Piece
  {
  public abstract class PieceBase
  {
  public PieceBase()
  {
  InitPiece();
  }
  // 形状的矩阵
  public int[,] Matrix { get; set; }
  // 形状的索引
  private int _index = 0;
  // 形状的最大索引
  public int MaxIndex { get; set; }
  /**////
  /// 初始化形状,需要设置 Matrix 和 MaxIndex
  ///

  public abstract void InitPiece();
  /**////
  /// 变形
  ///

  /// 变形后的矩阵
  public abstract int[,] GetRotate();
  /**////
  /// 形状的颜色
  ///

  public abstract Color Color { get; }
  /**////
  /// 获取下一个形状的索引。如果超过最大索引则返回最初索引
  ///

  ///
  public int GetNextIndex()
  {
  int nextIndex = _index >= MaxIndex ? 0 : _index + 1;
  return nextIndex;
  }
  /**////
  /// 变形。设置 Matrix 为变形后的矩阵
  ///

  public void Rotate()
  {
  Matrix = GetRotate();
  _index = GetNextIndex();
  }
  }
  }

上一页123456下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答