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

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

3.2数据结构设计

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

copyright paper51.com

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

paper51.com

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

内容来自www.paper51.com

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

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

内容来自www.paper51.com

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

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

public class SnakeLink {

paper51.com

    private int x, y;//坐标 http://www.paper51.com

    private int len;//长度

内容来自www.paper51.com

    private byte dir;//方向

paper51.com

    private SnakeLink() { paper51.com

    } copyright paper51.com

    ……

内容来自www.paper51.com

} http://www.paper51.com

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

http://www.paper51.com

public class SnakePit extends Canvasimplements Runnable {

copyright paper51.com

    //蛇的食物 http://www.paper51.com

    private SnakeFood myFood;

内容来自www.paper51.com

    //当前蛇对象 内容来自www.paper51.com

    private Snake     mySnake;

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

    //结束标志

paper51.com

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

    //暂停标志 内容来自www.paper51.com

    private boolean gamePaused =false;

http://www.paper51.com

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

    private boolean gameRestart= false;

内容来自www.paper51.com

    //重画标志

http://www.paper51.com

    private boolean forceRedraw= true; paper51.com

    //退出游戏标志 paper51.com

    private booleangameDestroyed = false;

copyright paper51.com

    //当前得分

内容来自www.paper51.com

    private int score = 0;

内容来自www.paper51.com

    //当前等级

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

    private int level = 5; paper51.com

    //吃到多少食物

http://www.paper51.com

    private int foodEaten = 0; 内容来自论文无忧网 www.paper51.com

    //当前屏幕象素宽 内容来自www.paper51.com

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

    //当前屏幕象素高 http://www.paper51.com

    private int height; 内容来自论文无忧网 www.paper51.com

    //音效对象 copyright paper51.com

    private Player audioPlayer;

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

    //音效对象 内容来自www.paper51.com

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

    //一个屏幕单元格宽

paper51.com

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

    //一个屏幕单元格高

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

    static int CellHeight;

paper51.com

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

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

    //重画时间 内容来自论文无忧网 www.paper51.com

    private static final intDEFAULT_WAIT = 400; copyright paper51.com

    //最高难度

内容来自www.paper51.com

    static final byte MAX_LEVELS= 10;

http://www.paper51.com

    //食物颜色

http://www.paper51.com

    static final intFOOD_COLOUR  = 0x0000ff00;

paper51.com

    //文字颜色 copyright paper51.com

    static final intTEXT_COLOUR  = 0x00ff0000;

paper51.com

    //擦除颜色

内容来自www.paper51.com

    static final intERASE_COLOUR = 0x00ffffff;

copyright paper51.com

    //蛇节点颜色 paper51.com

    static final intDRAW_COLOUR  = 0x00000000;

paper51.com

    //一个单元大小 copyright paper51.com

    public  static final int CELL_SIZE = 5;

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

    ……

paper51.com

}

paper51.com

最后一条蛇对象由Snake类将以上两个类又机组织在一起在游戏中使用。 内容来自论文无忧网 www.paper51.com

public class Snake { 内容来自www.paper51.com

    //方向常量 内容来自www.paper51.com

    public final static byteDOWN  = 2; http://www.paper51.com

    public final static byteLEFT  = 4;

内容来自www.paper51.com

    public final static byteRIGHT = 6; paper51.com

    public final static byte UP    = 8;

http://www.paper51.com

    // 蛇头当前方向

http://www.paper51.com

    private bytecurrentDirection;

http://www.paper51.com

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

    private Vector worm = newVector(5, 2); 内容来自www.paper51.com

    //是否需要更新 内容来自www.paper51.com

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

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

    private booleanmoveOnNextUpdate;

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

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

    private boolean hasEaten;

内容来自www.paper51.com

    ……

http://www.paper51.com

} paper51.com

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

public class SnakeFood {

内容来自www.paper51.com

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

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

    private int cellX;

paper51.com

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

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

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

    ...... paper51.com

}             

http://www.paper51.com

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