[索引页]
[源码下载]


游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]



作者:webabcd


介绍
使用 Silverlight 2.0(c#) 开发一个七彩俄罗斯方块


玩法
↑ - 变形;← - 向左移动;→ - 向右移动;↓ - 向下移动


在线DEMO
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]


思路
1、每个形状都是由4个“块”组成的,也就是“块”是俄罗斯方块的最小单位,首先要有一个“块”的用户控件。要求可以设置“块”的位置和颜色
2、经典俄罗斯方块一共7种形状,把每种形状所需要的功能抽象出来写一个抽象类,7个具体形状分别继承这个抽象类,并重写其抽象属性和抽象方法
3、核心控制部分:在容器内铺满隐藏的“块”,上/下/左/右/控制形状的变形和移动,通过控制容器内“块”的颜色来响应变化,当形状下一步移动或变形的位置处已经有颜色时则禁止移动或变形,当形状下一步移动或变形的位置在底边有颜色或处于容器的底部则判断消行并生成新的形状


关键代码
1、形状抽象类
PieceBase.cs

游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]using System;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Net;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Controls;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Documents;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Ink;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Input;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media.Animation;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Shapes;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
namespace YYTetris.Piece


2、继承PieceBase类,以“L”为例。每种形状均为一个4×4矩阵,1代表有“块”,0代表空
L.cs

游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]using System;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Net;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Controls;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Documents;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Ink;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Input;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media.Animation;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Shapes;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
namespace YYTetris.Piece


3、核心控制类
UIControl.cs

游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]using System;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Net;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Controls;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Documents;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Ink;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Input;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Media.Animation;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Shapes;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using YYTetris.Piece;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Windows.Threading;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.Collections.Generic;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
using System.ComponentModel;
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
游戏人生Silverlight(1) - 七彩俄罗斯方块[Silverlight 2.0(c#)]
namespace YYTetris



OK
[源码下载]

相关文章: