Java课程设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java课程设计

课程设计报告 2016~~2017 学年第 一 学期课程 Java课程设计课程设计名称小型安卓游戏《贪吃蛇》学生姓名杨博学号201520220205专业班级15数字媒体技术(2)班指导教师吴光明--目录—一、项目介绍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节,游戏运行时屏幕会自动产生食物(苹果),滑动屏幕控制蛇的方向,碰到墙后会从另一侧出来,吃到身体游戏失败,吃满50个食物游戏成功。50个食物个数是自己设定的。二、概要设计2.1 资源需求本游戏设计做结课使用,没有用到声音资源,只需要图片资源。图片资源:菜单背景、菜单按钮*2(开始、退出)、贪吃蛇头部、贪吃蛇身体、食物(苹果)、 失败界面、胜利界面、结束后返回按钮、游戏图标2.2 游戏运行方式安卓游戏的运行方式大概分为两种,一种是Activity的切换,一种是View的切换,小游戏用View的切换更为方便。本游戏就是采用的View切换的方式进行。本游戏一共有三个View,分别是菜单的静态ViewGroup、游戏的动态SurfaceView和结束游戏界面的静态View。由Activity消息机制控制View的切换。2.3 游戏运行流程进入游戏后,有两个按钮,一个是退出按钮,一个是开始按钮点击开始,开始后进入动态游戏界面,蛇是不停向前运动的,滑动屏幕控制蛇的移动方向。吃到身体,游戏失败,弹出失败界面,点击右上角返回键返回菜单。吃满50个食物,游戏胜利,弹出胜利界面,点击右上角返回键返回菜单。三、详细设计3.1 游戏模块划分游戏划分为5个模块,分放在5个包里。1.数据类用来管理游戏中的静态数据,有3个文件,分别是游戏静态数据管理类、Activity、消息类2.辅助类这个类中存放自定义的辅助类,有4个文件,分别是自定义按键类、图片处理类、屏幕管理的两个类3.视图类存放3个View类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;public 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); 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; } }}; 主要用到这两个函数:第一个函数用来发送消息,在各个View中需要做跳转的时候,便调用Activity的这个函数,传入相应的参数,发送消息个

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档