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

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

3.2数据结构设计

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

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

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

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

http://www.paper51.com

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

paper51.com

这里讲解数据结构类中主要属性,其他方法将在后面讲解。 http://www.paper51.com

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

public class SnakeLink {

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

    private int x, y;//坐标 copyright paper51.com

    private int len;//长度

http://www.paper51.com

    private byte dir;//方向 copyright paper51.com

    private SnakeLink() { http://www.paper51.com

    } copyright paper51.com

    ……

内容来自www.paper51.com

}

copyright paper51.com

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

copyright paper51.com

public class SnakePit extends Canvasimplements Runnable { copyright paper51.com

    //蛇的食物

paper51.com

    private SnakeFood myFood; copyright paper51.com

    //当前蛇对象

paper51.com

    private Snake     mySnake;

http://www.paper51.com

    //结束标志

内容来自www.paper51.com

    private boolean gameOver =false; 内容来自www.paper51.com

    //暂停标志

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

    private boolean gamePaused =false;

内容来自www.paper51.com

    //重来标志

内容来自www.paper51.com

    private boolean gameRestart= false; 内容来自www.paper51.com

    //重画标志 内容来自www.paper51.com

    private boolean forceRedraw= true; 内容来自论文无忧网 www.paper51.com

    //退出游戏标志

copyright paper51.com

    private booleangameDestroyed = false;

http://www.paper51.com

    //当前得分

copyright paper51.com

    private int score = 0;

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

    //当前等级 http://www.paper51.com

    private int level = 5; http://www.paper51.com

    //吃到多少食物 http://www.paper51.com

    private int foodEaten = 0;

http://www.paper51.com

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

    private int width;

paper51.com

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

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

    //音效对象 paper51.com

    private Player audioPlayer;

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

    //音效对象 copyright paper51.com

    private Player tonePlayer; paper51.com

    //一个屏幕单元格宽 http://www.paper51.com

    static int CellWidth; copyright paper51.com

    //一个屏幕单元格高 copyright paper51.com

    static int CellHeight; paper51.com

    //初始蛇位置 paper51.com

    private static final intSTART_POS = 3;

copyright paper51.com

    //重画时间

内容来自www.paper51.com

    private static final intDEFAULT_WAIT = 400;

paper51.com

    //最高难度 内容来自www.paper51.com

    static final byte MAX_LEVELS= 10;

paper51.com

    //食物颜色

内容来自www.paper51.com

    static final intFOOD_COLOUR  = 0x0000ff00; 内容来自www.paper51.com

    //文字颜色 http://www.paper51.com

    static final intTEXT_COLOUR  = 0x00ff0000; http://www.paper51.com

    //擦除颜色 http://www.paper51.com

    static final intERASE_COLOUR = 0x00ffffff; paper51.com

    //蛇节点颜色 copyright paper51.com

    static final intDRAW_COLOUR  = 0x00000000;

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

    //一个单元大小 内容来自www.paper51.com

    public  static final int CELL_SIZE = 5; paper51.com

    ……

paper51.com

} paper51.com

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

public class Snake { copyright paper51.com

    //方向常量 paper51.com

    public final static byteDOWN  = 2; copyright paper51.com

    public final static byteLEFT  = 4;

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

    public final static byteRIGHT = 6;

paper51.com

    public final static byte UP    = 8;

内容来自www.paper51.com

    // 蛇头当前方向

copyright paper51.com

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

    // 用一个链表来存储蛇节点

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

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

    //是否需要更新

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

    private boolean needUpdate;

copyright paper51.com

    //是否移动后更新 paper51.com

    private booleanmoveOnNextUpdate;

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

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

    private boolean hasEaten;

内容来自www.paper51.com

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

}

paper51.com

同时蛇吃的食物对象数据结构用SnakeFood类来表示如下:

内容来自www.paper51.com

public class SnakeFood {

copyright paper51.com

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

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

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

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

    private int  cellY;           

copyright paper51.com

    ...... copyright paper51.com

}              http://www.paper51.com

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