贪吃蛇Java课程设计.docx
《贪吃蛇Java课程设计.docx》由会员分享,可在线阅读,更多相关《贪吃蛇Java课程设计.docx(13页珍藏版)》请在沃文网上搜索。
1、 -目录一、项目介绍4二、概要设计42.1 资源需求42.2 游戏运行方式42.3 游戏运行流程4三、详细设计53.1 游戏模块划分53.2 组件需求53.4 视图切换5四、编码分析54.1 数据类54.2 辅助类74.3 视图类84.4 线程类124.5 对象类12五、数据库13六、总结15一、项目介绍针对java课程设计,我做了一个小型安卓游戏贪吃蛇结课,游戏代码中包含到本学习所有知识点的应用,以及安卓的系统框架。游戏已经成功的运行,玩法很简单,打开游戏后进入菜单,点开始键进入游戏。蛇的初始长度是4节,游戏运行时屏幕会自动产生食物(苹果),滑动屏幕控制蛇的方向,碰到墙后会从另一侧出来,吃到
2、身体游戏失败,吃满50个食物游戏成功。50个食物个数是自己设定的。二、概要设计2.1 资源需求本游戏设计做结课使用,没有用到声音资源,只需要图片资源。图片资源:菜单背景、菜单按钮*2(开始、退出)、贪吃蛇头部、贪吃蛇身体、食物(苹果)、 失败界面、胜利界面、结束后返回按钮、游戏图标2.2 游戏运行方式安卓游戏的运行方式大概分为两种,一种是Activity的切换,一种是View的切换,小游戏用View的切换更为方便。本游戏就是采用的View切换的方式进行。本游戏一共有三个View,分别是菜单的静态ViewGroup、游戏的动态SurfaceView和结束游戏界面的静态View。由Activity
3、消息机制控制View的切换。2.3 游戏运行流程进入游戏后,有两个按钮,一个是退出按钮,一个是开始按钮点击开始,开始后进入动态游戏界面,蛇是不停向前运动的,滑动屏幕控制蛇的移动方向。吃到身体,游戏失败,弹出失败界面,点击右上角返回键返回菜单。吃满50个食物,游戏胜利,弹出胜利界面,点击右上角返回键返回菜单。三、详细设计3.1 游戏模块划分游戏划分为5个模块,分放在5个包里。1.数据类用来管理游戏中的静态数据,有3个文件,分别是游戏静态数据管理类、Activity、消息类2.辅助类这个类中存放自定义的辅助类,有4个文件,分别是自定义按键类、图片处理类、屏幕管理的两个类3.视图类存放3个View类
4、4.线程类存放两个线程类5.对象类存放蛇对象类3.2 组件需求需要的组件有3个View、1个Activity、两个线程。3.4 视图切换用消息机制进行View切换,在Activity中接收消息,各个View在适当的时候发送消息,Activity接收到消息之后控制View的切换。四、编码分析4.1 数据类1.静态数据类Content.Java这个类中存放游戏中的静态数据,包括各个按钮、背景的大小和位置,以及与蛇相关的静态数据。2.消息类WhatMessage.javapublic class WhatMessage public static final int GO_TO_GAME=0;pub
5、lic static final int EXIT=1;public static final int OVER_GAME = 2;public static final int MENU = 3;消息实际上就是int型的整数,消息必须是static final int型。消息=0-开始游戏消息=1-退出游戏消息=2-游戏结束消息=3-跳转菜单3.游戏核心组件SnakeActivity.javaActivity主要用来切换View代码如下:public void sendMessage(int what) Message msg1 = myHandler.obtainMessage(what)
6、; myHandler.sendMessage(msg1);Handler myHandler = new Handler()/处理各个SurfaceView发送的消息 public void handleMessage(Message msg) switch(msg.what) case WhatMessage.GO_TO_GAME: gotoSnakeView(); break; case WhatMessage.OVER_GAME: gotoGameOverView(); break; case WhatMessage.MENU: gotoMenu(); break; ; 主要用到这两个
7、函数:第一个函数用来发送消息,在各个View中需要做跳转的时候,便调用Activity的这个函数,传入相应的参数,发送消息个Activity。第二个函数用来接收消息,根据接收到的消息做相应的反应各个响应函数代码如下:public void gotoGameOverView()GameOverView = new GameOverView(this);setContentView(GameOverView);public void gotoMenu()Menu = new Menu(this);setContentView(Menu);public void gotoGameView()Game
8、view = new GameView(this);setContentView(Gameview);setContentView是用来显示当前View的。在接到消息后,根据消息的提示,创建View类对象,并跳转到相应的View中。4.2 辅助类1.自定义按键ImageButton.jaba构造函数:public ImageButton(Context context,Bitmap bm) super(context);/ TODO Auto-generated constructor stubthis.bm = bm;传入一张图片资源,做相应的处理,并在View中设置位置,便可以安装一个图片
9、型按钮2.图片处理PicLoad.javapublic static Bitmap MakeDot(Bitmap bm,int tobewidth,int tobeheight) float wratio = (float)tobewidth/bm.getWidth(); float hratio = (float)tobeheight/bm.getHeight();Matrix m1 = new Matrix(); m1.postScale(wratio, hratio); return Bitmap.createBitmap(bm, 0, 0,bm.getWidth(),bm.getHei
10、ght(), m1, true); /缩放旋转图片,使图片全屏,不等比缩放 public static Bitmap MakeBackGround(Bitmap bm) float wRatio = ScreenWidth/bm.getWidth(); /图片宽度float hRatio = ScreenHeight/bm.getHeight();/图片高度Matrix m1 = new Matrix(); m1.postScale(wRatio, hRatio);return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(
11、), m1, true); 这个类中有像个函数:第一个函数传入三个参数,一个是图片资源,另外两个是图片要改变的长和高,然后把图片改变成这个大小。第二个是函数是将图片变换为全屏。3.屏幕辅助ScreenScaleResult.java屏幕辅助类是让游戏适应手机屏幕的大小,是通用类,这里就不赘述了。4.屏幕结果ScreenScaleUtil.java同上4.3 视图类1.菜单界面Menu.javapublic void initBitmap()StartBitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.start
12、);ExitBitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.exit);BackGround=BitmapFactory.decodeResource(this.getResources(), R.drawable.bg);/适应屏StartBitmap=PicLoad.MakeDot(StartBitmap, Content.wBUTTON,Content.hBUTTON);ExitBitmap=PicLoad.MakeDot(ExitBitmap, Content.wBUTTON,Content.hBU
13、TTON);BackGround=PicLoad.MakeBackGround(BackGround);public void onDraw(Canvas canvas) canvas.drawColor(Color.GRAY);canvas.drawBitmap(BackGround, 0, 0, paint);Overridepublic void onClick(View v) / TODO Auto-generated method stubif(v = StartButton)activity.sendMessage(WhatMessage.GO_TO_GAME);if(v = Ex
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪吃 Java 课程设计
