逐步讲解用C#实现俄罗斯方块之核心代码[上]

从分析到实现讲解俄罗斯方块的做法
俄罗斯方块在.NET下的制作,我写的只是一些拙见,望高手不要板砖,也请高手不惜赐教!
首先我们要分析俄罗斯方块的原理
1.由移动的方块和不能动的方块组成
2.一行排满消除
3.能产生多种方块
---
首先我们来分析方块
前面说了方块由两部分组成一种是移动下落的一种是固定的,我们逐个来分解,移动的方块一般由4个方块组成[我们这里只讨论保准版]我们假设吧这个4个下落的方块看成一个封装的类,那么他就有4个图形成员,我们不妨假设是4个黑色的pictureBox组建[大小10*10],再在类里面添加一个初始化方法用于通过picturebox.Location来控制没干方块的位置,那么我们先生成一个初步的类shape,其中pb是下落的图形,而oldpb是已经固定的图形,为什么这样定义呢 

     public   class  sharp
    {
        
// 用于记录分数
        
// 用于记录已经触底的图像
         protected  PictureBox[] oldpb = new  PictureBox[ 1000 ];
        
// 用于控制移动中的图像
         public  PictureBox[] pb  =   new  PictureBox[ 4 ];
        
// 移动图像的初始化位置
         private   int  initX  =   100 ;
        
private   int  initY  =   10 ;

        
// 构造函数[参数用于制定控件添加到什么窗口]
         public  sharp(Form f)
        {
            newObj(f);
        }

        
// 用于给定时器调用 向下移动
         public   void  moveDown(Form f)
        {
        }

        
// 用于旋转图形
         public   void  Roll()
        {
        }

       
        
private   void  Rollx( int  a, int  b)
        {
        }
        
// 检查是否到底 到底则进行转换
         public   bool  check(Form f)
        {
        }

        
// 此方法用于将图形转换为触底图形
         private   void  changToOld(Form f)
        {
        }

        
public   void  sharp_0()
        {
            pb[
0 ].Location  =   new  Point(initX, initY);
            pb[
1 ].Location  =   new  Point(initX, initY  -   10 );
            pb[
2 ].Location  =   new  Point(initX  +   10 , initY  -   10 );
            pb[
3 ].Location  =   new  Point(initX  +   10 , initY );
        }
        
public   void  sharp_1()
        {
            pb[
0 ].Location  =   new  Point(initX, initY);
            pb[
1 ].Location  =   new  Point(initX, initY  -   10 );
            pb[
2 ].Location  =   new  Point(initX, initY  -   20 );
            pb[
3 ].Location  =   new  Point(initX, initY  -   30 );
        }
        
public   void  sharp_2()
        {
            pb[
0 ].Location  =   new
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值