[email protected]
thank u !

解决方案 »

  1.   

    也给我一个可以吗?  [email protected]
      

  2.   

    //请参考
    http://www.csdn.net/expert/topic/366/366396.xml?temp=.9482691
      

  3.   

    [email protected]    
    Thank You!
      

  4.   

    俄罗斯方块的标准做法是用数组模拟:
    先定义一个结构体
    struct Stage{
      int IsBlock; //如果有方块则为1,否则为0,默认为0(这里的方块实指单个方块)
      BOOL CanChange; //如果落到底后为False,若没有则为True;
      。//为了程序简洁还可以加上其他标志域方便判断
    }
    然后定义一个10*20的结构体数组StageArray[10][20];通过设置StageArray[x][x].IsBlack来表示该处是否应该画上方块;
    在定义若干个数组Shape_X[4][4]来代表基本图形比如:
    {{0,0,0,0},
     {1,1,1,0},
     {0,1,0,0},
     {0,1,0,0}}
    代表“T”型图元;这样转动图元就变成了转动数组不过必须保持含“1”的元素在右下角否则图元位置会又偏移;
    图元下落就是把Shape_x加在StageArray上,下落时先判断它的下一个位置有没有阻挡它的方块(可以先式加一次如果有那么Shape_X中就有
    为“2”的项)如果有就停止并将StageArray[x][x].CanChange改写为False;
    最后要做的就是写界面判断StageArray那里有“1”就画一个方块;图元每动作一就刷新一次。