论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP JSP .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 其他 代写论文
当前位置: 网站首页 > 计算机 > JAVA >

手机吞吃蛇游戏的设计与开发(论文+程序)

3.2数据结构设计

节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。

内容来自论文无忧网 www.paper51.com

段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。

内容来自论文无忧网 www.paper51.com

链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。

http://www.paper51.com

坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。 paper51.com

这里讲解数据结构类中主要属性,其他方法将在后面讲解。

copyright paper51.com

这里用一个SnakeLink类来表示一个蛇身体节点对象:

paper51.com

public class SnakeLink { 内容来自论文无忧网 www.paper51.com

    private int x, y;//坐标

paper51.com

    private int len;//长度

内容来自论文无忧网 www.paper51.com

    private byte dir;//方向

http://www.paper51.com

    private SnakeLink() { paper51.com

    }

paper51.com

    ……

内容来自论文无忧网 www.paper51.com

}

内容来自www.paper51.com

这里用SnakePit类来表示一个蛇对象的基本游戏属性:

copyright paper51.com

public class SnakePit extends Canvasimplements Runnable { copyright paper51.com

    //蛇的食物

http://www.paper51.com

    private SnakeFood myFood; copyright paper51.com

    //当前蛇对象

http://www.paper51.com

    private Snake     mySnake;

paper51.com

    //结束标志 paper51.com

    private boolean gameOver =false; http://www.paper51.com

    //暂停标志

内容来自论文无忧网 www.paper51.com

    private boolean gamePaused =false; copyright paper51.com

    //重来标志

内容来自www.paper51.com

    private boolean gameRestart= false;

内容来自www.paper51.com

    //重画标志 copyright paper51.com

    private boolean forceRedraw= true;

paper51.com

    //退出游戏标志

copyright paper51.com

    private booleangameDestroyed = false; copyright paper51.com

    //当前得分 paper51.com

    private int score = 0;

内容来自论文无忧网 www.paper51.com

    //当前等级 paper51.com

    private int level = 5; paper51.com

    //吃到多少食物

paper51.com

    private int foodEaten = 0;

内容来自www.paper51.com

    //当前屏幕象素宽 copyright paper51.com

    private int width; copyright paper51.com

    //当前屏幕象素高 内容来自论文无忧网 www.paper51.com

    private int height; 内容来自www.paper51.com

    //音效对象

copyright paper51.com

    private Player audioPlayer;

内容来自www.paper51.com

    //音效对象

copyright paper51.com

    private Player tonePlayer; 内容来自www.paper51.com

    //一个屏幕单元格宽 内容来自论文无忧网 www.paper51.com

    static int CellWidth; 内容来自论文无忧网 www.paper51.com

    //一个屏幕单元格高

http://www.paper51.com

    static int CellHeight; 内容来自www.paper51.com

    //初始蛇位置 内容来自www.paper51.com

    private static final intSTART_POS = 3; 内容来自论文无忧网 www.paper51.com

    //重画时间 内容来自www.paper51.com

    private static final intDEFAULT_WAIT = 400; 内容来自论文无忧网 www.paper51.com

    //最高难度

paper51.com

    static final byte MAX_LEVELS= 10;

内容来自www.paper51.com

    //食物颜色 copyright paper51.com

    static final intFOOD_COLOUR  = 0x0000ff00;

内容来自论文无忧网 www.paper51.com

    //文字颜色

内容来自www.paper51.com

    static final intTEXT_COLOUR  = 0x00ff0000;

http://www.paper51.com

    //擦除颜色

http://www.paper51.com

    static final intERASE_COLOUR = 0x00ffffff;

copyright paper51.com

    //蛇节点颜色

内容来自www.paper51.com

    static final intDRAW_COLOUR  = 0x00000000;

copyright paper51.com

    //一个单元大小

内容来自www.paper51.com

    public  static final int CELL_SIZE = 5;

paper51.com

    ……

copyright paper51.com

}

paper51.com

最后一条蛇对象由Snake类将以上两个类又机组织在一起在游戏中使用。

内容来自论文无忧网 www.paper51.com

public class Snake { copyright paper51.com

    //方向常量

内容来自论文无忧网 www.paper51.com

    public final static byteDOWN  = 2;

paper51.com

    public final static byteLEFT  = 4;

http://www.paper51.com

    public final static byteRIGHT = 6;

copyright paper51.com

    public final static byte UP    = 8; paper51.com

    // 蛇头当前方向

http://www.paper51.com

    private bytecurrentDirection; 内容来自www.paper51.com

    // 用一个链表来存储蛇节点 内容来自论文无忧网 www.paper51.com

    private Vector worm = newVector(5, 2); paper51.com

    //是否需要更新 copyright paper51.com

    private boolean needUpdate; copyright paper51.com

    //是否移动后更新

内容来自www.paper51.com

    private booleanmoveOnNextUpdate;

内容来自论文无忧网 www.paper51.com

    //是否已经吃到食物 paper51.com

    private boolean hasEaten;

paper51.com

    …… copyright paper51.com

}

内容来自论文无忧网 www.paper51.com

同时蛇吃的食物对象数据结构用SnakeFood类来表示如下: 内容来自论文无忧网 www.paper51.com

public class SnakeFood {

内容来自www.paper51.com

    //当前食物所在的单元X坐标 paper51.com

    private int cellX; 内容来自www.paper51.com

    //当前食物所在的单元Y坐标

内容来自www.paper51.com

    private int  cellY;            paper51.com

    ...... paper51.com

}              paper51.com

------分隔线----------------------------
联系方式