zoukankan      html  css  js  c++  java
  • 俄罗斯方块(2D、3D)

    声明:这篇文章主要是参考几个别人的博文及源代码学习。参考文章:

    1)http://blog.csdn.net/qian_f/article/details/19758671

    2)http://yacare.iteye.com/blog/1949398

    砖块类型:

    如何实现俄罗斯方块游戏?首先我们需要确定有些中的初始化有多少种方块,每种方块是可以如何变形?一共包含以下七种图形、变形情况如下:

    方块一:    变形1       变形2          变形3           变形4  

            + +       + +        + +        + +
            + +       + +        + +        + +

    方块二:

         - - - - -          - - - - -          - - - - -          - - + - -
         - - - - -          - - + - -          - - - - -          - - + - -
         - + + + +          - - + - -          + + + + -          - - + - -
         - - - - -          - - + - -          - - - - -          - - + - -
         - - - - -          - - + - -          - - - - -          - - - - -

    方块三:

          - + -         - + -         - - -          - + -
          + + +         - + +         + + +          + + -
          - - -         - + -         - + -          - + -

    方块四:

          - - -         - + -         + + -        - - +
          + + -         + + -         - + +        - + +
          - + +         + - -         - - -        - + -

    方块五:

          - - -         + - -       - + +          - + -
          - + +         + + -       + + -          - + +
          + + -         - + -       - - -          - - +

    方块六:

          - - - - -            - - - - -             - - - - -             - - + - -
          - - + - -            - - - - -             - - - - -             - - + - -
          - - + + +            - - + + -             + + + - -             - + + - -
          - - - - -            - - + - -             - - + - -             - - - - -
          - - - - -            - - + - -             - - - - -             - - - - -

    方块七:

          - - - - -          - - + - -            - - - - -            - - - - -
          - - + - -          - - + - -            - - - - -            - - - - -
          + + + - -          - - + + -            - - + + +            - + + - -
          - - - - -          - - - - -            - - + - -            - - + - -
          - - - - -          - - - - -            - - - - -            - - + - -

    游戏画布

    根据自己的需求设定一定宽度、高度的一个画布,根据需要设定宽多少column,高多少row,除了对画布划分网格外,还需要对每个网格设定其颜色填充类型:1)七种图形的哪一种(-1--无任何填充因此无颜色,0:填充砖块1类型,1:填充砖块2类型;。。。6:填充砖块7类型,备注:每种栅格对应有自己唯一的渲染颜色,因此记录栅格就可以找到其对应的填充颜色值);

    2)是否填充(0--无填充;1--填充)

    因此,定义画布的网格需要使用一个三维数组表示:int [,,]

    第一个元素代表:第多少个column,从0开始;

    第二个元素代表:第多少个row,从0开始;

    第三个元素代表:某个网格的颜色填充类型。

    画布事件:

    上、下(快速实现下滑)、左、右

    方块具有的属性方法:

    颜色、中心点、相对中心点、砖块类型唯一标识、变型序列、必要的行、必要的列、变形范围;

    是否可以向左、是否可以向右、是否可以向下、是否可以变形、变形。

    2D效果图:

    3D效果图:

    去掉网格后的效果貌似更好点:

    代码下载:链接:http://pan.baidu.com/s/1mhTnj64 密码:c2rl

  • 相关阅读:
    volatile 能使得一个非原子操作变成原子操作吗?
    什么是线程局部变量?
    使用idea插件进行java代码生成
    mybatis plus+dynamic事务导致多数据源切换失败
    10_docker-compose
    Ubuntu的Python从2.x升级到3.x
    idea查看控制台数据mybatis的sql完整语句
    iframe高度处理
    angular路由
    去掉iPhone、iPad的默认按钮、输入框样式
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/7440733.html
Copyright © 2011-2022 走看看