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

A400110J2ME贪吃蛇游戏的设计

贪吃蛇最初由3个小正方形组成,小正方形是蛇的身体和游戏容器的组成部分。食物也由一块小正方形组成,并且随机散落在游戏框图的区域内,每次只出现唯一的一个,待玩家操作游戏完成一个任务后面,再出现下个食物,小蛇每吃一个食物就增加一个长度。实现代码如下: copyright paper51.com

publicint getCell(){

copyright paper51.com

              returniCell; http://www.paper51.com

       } copyright paper51.com

       public intgetRow(){

http://www.paper51.com

              returniRow;

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

       }

内容来自www.paper51.com

    public void show(){

paper51.com

       sLabel.setVisible(true); copyright paper51.com

    }

http://www.paper51.com

    public boolean isVisible(){

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

       return sLabel.isVisible();

copyright paper51.com

    } 内容来自www.paper51.com

    public void hide(){

http://www.paper51.com

       sLabel.setVisible(false); http://www.paper51.com

    } paper51.com

    protected voidsetPosition(int row, int cell){ http://www.paper51.com

              iCell= cell;

copyright paper51.com

              iRow  = row;

内容来自www.paper51.com

       sLabel.setBounds(cell*SWIDTH, row*SWIDTH, SWIDTH, SWIDTH);

paper51.com

    } 内容来自www.paper51.com

       public voidmoveUp(){ 内容来自www.paper51.com

              if(iRow>0) copyright paper51.com

                     setPosition(--iRow,iCell);

http://www.paper51.com

              else

http://www.paper51.com

                     setTouch();

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

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

       public voidmoveDown(){ copyright paper51.com

              if(iRow<iBoxH-1) http://www.paper51.com

                     setPosition(++iRow,iCell);

内容来自www.paper51.com

              else copyright paper51.com

                     setTouch();

paper51.com

       }

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

       public voidmoveLeft(){

paper51.com

              if(iCell>0) paper51.com

                     setPosition(iRow,--iCell);

copyright paper51.com

              else http://www.paper51.com

                     setTouch(); 内容来自www.paper51.com

       }

paper51.com

       public voidmoveRight(){

copyright paper51.com

              if(iCell<iBoxW-1) 内容来自www.paper51.com

                     setPosition(iRow,++iCell); copyright paper51.com

              else copyright paper51.com

                     setTouch(); copyright paper51.com

       }

内容来自www.paper51.com

       staticboolean getTouch(){ 内容来自论文无忧网 www.paper51.com

              returnisTouch;

copyright paper51.com

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

       static voidsetTouch(){

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

              isTouch= true; http://www.paper51.com

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

       static voidsetImTouch(){ 内容来自www.paper51.com

              isTouch= false;

copyright paper51.com

       } 内容来自www.paper51.com

       publicSnake clone(){ 内容来自论文无忧网 www.paper51.com

              Snaketem = new Snake(); copyright paper51.com

              tem.setPosition(this.getRow(),this.getCell()); 内容来自www.paper51.com

              returntem; copyright paper51.com

       }

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

(3)操作控制代码设计

paper51.com

MIDP的游戏设计,本质上就是用一个线程或者定时器产生重绘事件,用线程和用户输入改变游戏状态。这个游戏也不例外,启动MIDlet后,就立即生成一个重绘线程,该线程每隔50ms绘制一次屏幕。当然,重绘时有一些优化措施,并不是屏幕上所有的像素都需要重绘,而是有所选择,比如游戏画布上那些已经固定下来的就不需重绘。游戏画布是一个CommandListener,可以接受用户键盘命令,控制蛇的左移,右移,下移,上移。其代码如下:

paper51.com

public voidmove(){ paper51.com

              hide(); http://www.paper51.com

              if(aoSnakes[0].getRow()==Food.getRow()&&aoSnakes[0].getCell()==Food.getCell()) http://www.paper51.com

                     eat(); 内容来自www.paper51.com

              SnaketempSnakes[] = new Snake[iLen-1];

内容来自www.paper51.com

              for(inti=0;i<tempSnakes.length;i++){ 内容来自www.paper51.com

                     tempSnakes[i]= aoSnakes[i].clone(); 内容来自论文无忧网 www.paper51.com

              }

http://www.paper51.com

              switch(heading){ 内容来自论文无忧网 www.paper51.com

                     case37: paper51.com

                            aoSnakes[0].moveLeft(); paper51.com

                            break;

http://www.paper51.com

                     case38: http://www.paper51.com

                            aoSnakes[0].moveUp(); 内容来自论文无忧网 www.paper51.com

                            break;

paper51.com

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

                            aoSnakes[0].moveRight();

http://www.paper51.com

                            break; 内容来自www.paper51.com

                     case40: paper51.com

                            aoSnakes[0].moveDown();

内容来自www.paper51.com

                            break;

http://www.paper51.com

                     default:

paper51.com

                            break;

http://www.paper51.com

整个游戏的流程控制体现在游戏画布对象的paint()方法里。paint()根据当前的游戏状态,绘制出当时的游戏画面。欢迎画面和Game Over画面的绘制相当简单,游戏暂停画面的绘制也相当容易,就是设立标志,让paint()执行的时候无需真正执行重绘动作。 内容来自论文无忧网 www.paper51.com

第四章 程序的调试与运行 内容来自www.paper51.com

4.1游戏的调试 http://www.paper51.com

在手机游戏方面,游戏的控制和图片的设置是游戏的基本能力,为了方便玩家操作游戏,把玩家常用的操作键设为游戏最常用的控制键,并通过J2ME简单有效的编码,使玩家可以重新设置自己的熟悉的键。本游戏不设立关卡,而是随着游戏积分的增加,游戏将自动增加游戏的难度,如加快游戏速度和随小蛇长度的增加,游戏的操作难度也会增大。如玩家进入游戏(如图4-1),操作小蛇,

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

http://www.paper51.com

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