zoukankan      html  css  js  c++  java
  • 来自星星的你,我要代表月亮消灭你一

      来自星星的你,一个风靡全亚洲的连续剧。这里来自星星的你——既是一个消灭星星的游戏。既是一个大名鼎鼎的游戏——消灭星星。那请看我游戏运行后最终的结果:

      

      下面,我们来看一看相应的游戏mvc思维导图:

      

      下面是类的结构图:

      

      下面进行主要类的介绍,这节主要介绍三个接口。

      第一个接口,IConstants接口,这个IConstants接口定义了一些游戏中的常量,这些常量定义了游戏中的一些主基调,例如游戏面板中的宽度,高度。每行的数量,每列的数量等等,这些都是游戏主元素,源代码如下:

      

    /**
     * 这个类定义了所谓的一些常量 
     * @author zcw
     */
    public interface IConstants {
        
        /**格子个数**/
        public static final int CELLS_HORIZONTAL = 8;
        public static final int CELLS_VERTICAL = CELLS_HORIZONTAL;    
        
        /**格子尺寸**/
        public static final int CELL_WIDTH = 40;
        public static final int CELL_HEIGHT = CELL_WIDTH;    
        
        /**背景格子个数**/
        public static final int CELLBG_HORIZONTAL = 4;
        public static final int CELLBG_VERTICAL = CELLBG_HORIZONTAL;    
        
        /**背景格子尺寸**/
        public static final int CELLBG_WIDTH = 80;
        public static final int CELLBG_HEIGHT = CELLBG_WIDTH;
        
        /**星星的状态**/
        final int STATE_NORMAL = 0;  //正常
        final int STATE_SCALEINT = STATE_NORMAL + 1; //缩放
        final int STATE_FALL = STATE_SCALEINT + 1;   //下落中
        final int STATE_DEAD = STATE_FALL + 1;//死亡
    }

      我们得出来这样的结论:

      Ⅰ定义了格子的格数。

      Ⅱ定义了格子的尺寸。

      Ⅲ定义了星星的状态。每种状态都由一种常量代表。

      这里就是定基调——定游戏的基调。

      第二个接口 ISPrite接口——精灵类的接口,一切精灵的接口都是继承与他,定义了接口的通用属性与方法。源代码如下:

      

    /**
     * 精灵接口
     * @author zcw
     */
    public interface ISprite {
        
        public int getRow();//获取在地图中到行
        
        public int getCol();//获取在地图中到列
        
        public void setMapPosition(final int row, final int col);//移动到地图到指定位置
        
    }

      这个接口分别定义元素能够获取在地图中的行,地图中的列,还能将其移动到地图指定的位置。

      这个接口,大框架——搭游戏元素的框架。

      三ICell类——游戏单元格的抽象类,单元格的一种抽象。源代码如下:

      

    /**
     * 单元格的抽象类(相当于接口)
     * @author zcw
     */
    public abstract class ICell extends Sprite implements IConstants {
    
        public ICell(final int pCellX, final int pCellY, final int pWidth, final int pHeight, final TextureRegion pTextureRegion) {
            super(pCellX, pCellY, pWidth, pHeight, pTextureRegion);
        }
    }

      这个接口分别方法定义了x坐标,y坐标,宽度,高度,材质,这是指定一个游戏元素非常重要的。

      总而言之,这些接口,看似是一些鸡肋,确是整个游戏的蓝图。

  • 相关阅读:
    石子游戏2
    礼物的最大价值
    CF512D. Fox And Travelling
    arc099F
    CF504E. Misha and LCP on Tree(长链剖分求k级祖先)
    agc031D
    CF555E. Case of Computer Network
    agc023D
    CF1406E. Deleting Numbers
    CF585F. Digits of Number Pi
  • 原文地址:https://www.cnblogs.com/manuosex/p/3687858.html
Copyright © 2011-2022 走看看