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

A400110J2ME贪吃蛇游戏的设计

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

publicint getCell(){ 内容来自www.paper51.com

              returniCell;

copyright paper51.com

       }

paper51.com

       public intgetRow(){ paper51.com

              returniRow;

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

       }

http://www.paper51.com

    public void show(){ http://www.paper51.com

       sLabel.setVisible(true);

内容来自www.paper51.com

    } paper51.com

    public boolean isVisible(){

http://www.paper51.com

       return sLabel.isVisible();

copyright paper51.com

    } http://www.paper51.com

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

       sLabel.setVisible(false);

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

    }

内容来自www.paper51.com

    protected voidsetPosition(int row, int cell){ 内容来自www.paper51.com

              iCell= cell; 内容来自论文无忧网 www.paper51.com

              iRow  = row;

paper51.com

       sLabel.setBounds(cell*SWIDTH, row*SWIDTH, SWIDTH, SWIDTH); copyright paper51.com

    }

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

       public voidmoveUp(){ copyright paper51.com

              if(iRow>0) 内容来自论文无忧网 www.paper51.com

                     setPosition(--iRow,iCell); 内容来自www.paper51.com

              else

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

                     setTouch(); 内容来自论文无忧网 www.paper51.com

       } copyright paper51.com

       public voidmoveDown(){

http://www.paper51.com

              if(iRow<iBoxH-1)

http://www.paper51.com

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

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

                     setTouch();

http://www.paper51.com

       } 内容来自www.paper51.com

       public voidmoveLeft(){ copyright paper51.com

              if(iCell>0) 内容来自论文无忧网 www.paper51.com

                     setPosition(iRow,--iCell);

http://www.paper51.com

              else

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

                     setTouch();

http://www.paper51.com

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

       public voidmoveRight(){

http://www.paper51.com

              if(iCell<iBoxW-1)

内容来自www.paper51.com

                     setPosition(iRow,++iCell); 内容来自www.paper51.com

              else

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

                     setTouch();

http://www.paper51.com

       }

内容来自www.paper51.com

       staticboolean getTouch(){

内容来自www.paper51.com

              returnisTouch; copyright paper51.com

       }

copyright paper51.com

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

              isTouch= true; 内容来自www.paper51.com

       }

paper51.com

       static voidsetImTouch(){

copyright paper51.com

              isTouch= false; paper51.com

       } 内容来自www.paper51.com

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

              Snaketem = new Snake();

内容来自www.paper51.com

              tem.setPosition(this.getRow(),this.getCell()); http://www.paper51.com

              returntem; 内容来自论文无忧网 www.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()) paper51.com

                     eat(); 内容来自论文无忧网 www.paper51.com

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

copyright paper51.com

              for(inti=0;i<tempSnakes.length;i++){

内容来自www.paper51.com

                     tempSnakes[i]= aoSnakes[i].clone(); paper51.com

              }

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

              switch(heading){ http://www.paper51.com

                     case37: http://www.paper51.com

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

                            break;

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

                     case38:

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

                            aoSnakes[0].moveUp();

copyright paper51.com

                            break; copyright paper51.com

                     case39: 内容来自www.paper51.com

                            aoSnakes[0].moveRight();

paper51.com

                            break; paper51.com

                     case40:

http://www.paper51.com

                            aoSnakes[0].moveDown();

paper51.com

                            break;

paper51.com

                     default:

copyright paper51.com

                            break; 内容来自www.paper51.com

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

copyright paper51.com

第四章 程序的调试与运行

内容来自www.paper51.com

4.1游戏的调试

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

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

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

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