Java课程设计、安卓开发(AndroidStudio):JavaScript实现贪吃蛇小游戏(手机APK)java手机游戏「Java课程设计、安卓开发(AndroidStudio):JavaScript实现贪吃蛇小游戏(手机APK)」
本人一直想找时间系统整理一下之前做过的一些实验,便于后续用到的时候可以尽快的使用,po出来也便于大家交流学习,有问题欢迎交流指正,与诸君共勉!
这次是Java的课程设计,现在看起来更像是一个安卓开发的课程设计。设计了一个贪吃蛇游戏,有友好的GUI界面和较为全面的功能。
开始动画
开启GreegySnake后,显示开始动画,如图1。
开始动画停留三秒后自动进入登录界面,如图2。

图1 开始动画
图2 登录界面
注册
下载GreedySnake软件并打开后,首次使用需要点击登陆界面的“没有账号?点此注册”按钮进入GamePlayer用户注册界面进行用户注册,如图3。
按提示输入账号:用户名/手机号/邮箱,并设置密码:数字组合,如图4。
注册成功后弹出提示:注册成功,并跳转至登录界面,如图5。
图3 注册界面
图4 用户注册
图5 注册成功
登录
登陆界面输入用户名和密码,勾选“我同意用户服务协议和隐私政策”,点击登录按钮,进入游戏菜单界面,如图7。
图7 游戏菜单界面
贪吃蛇游戏
从游戏菜单界面点击“新游戏“,进入贪吃蛇游戏初始界面,如图9,小蛇初始身长为4。默认开始播放游戏背景音乐。
单击“开始游戏“按钮,进入游戏主界面,如图10。用户可点击“向右”、“向左”、“向上”、“向下”四个按钮控制小蛇爬动的方向,食物随机出现在游戏界面中,食物种类从下图六种水果中随机产生。
图8 六种食物种类
游戏中,默认背景音乐暂停,小蛇每吃到食物一次,会播放相应音效。
图9 游戏初始界面
图10 游戏中
游戏中,点击”游戏暂停“按钮,会播放按钮点击音效并默认继续播放背景音乐,屏幕中央提示”点击按钮,继续游戏“字样,如图11。
单击主界面右上角喇叭图标,图标更换为静音模式,如图12。按钮音效和背景音乐将切换至静音模式。
图11 游戏中点击“游戏暂停”按钮
图12 游戏切换为静音模式
游戏过程中,根据不同得分,将展示不同效果,具体规则如下:
小蛇吃到一次食物加10分,每吃到一个食物,播放win音效;
得分小于250,分数每增加50,播放一次鼓掌音效;
得分大于等于300,小于400,分数每增加20,播放一次鼓掌音效;
得分大于等于400,分数每增加10,播放一次鼓掌音效,屏幕中央显示提示字样“YOU ARE A WINNER!”,中央”游戏暂停”按钮字样变为“WIN”。
分数达到500,自动跳转最终胜利界面,如图13。
查看历史最高分数
每轮游戏过后,若本轮得分超过本用户历史最高分数,将自动更新历史最高分数。在游戏菜单界面点击“查看历史最高分数”可查看最高分数记录,如图14。
在游戏菜单界面点击“退出游戏“按钮,可返回GamePlayer登录界面。
本客户端无服务器,故用户账户密码数据、历史最高分数数据、游戏界面静音状态数据均存放在手机本地文件与数据库中。
国密4加密
对于用户注册信息,将用户密码使用国家密码管理局发布的4.0密码算法进行加密后存储,增强用户信息安全性。在Android Studio平台模拟运行,注册后,可看到日志信息如图15,用户密码已被加密处理。
图15 注册账户Log信息
SQLite数据库存储
用户账号密码数据统一存储在snakeUser.db数据库的user表中。
图16 snakeUser.db数据库
文件存储
用户历史最高分数、静音按键状态信息分别存储在文件名为“用户名+scorefile.xml”、“用户名+VolumeFile.xml”的文件中,如图17。
图17 最高分数、音量文件信息
共设计16个Java文件:
Macro:用于定义游戏界面中的固定参数、文件名称等
User:用于创建用户信息
UserService:用于用户注册、登录功能实现
StartActivity:用于软件开始动画的3秒显示
MainActivity: 用于主游戏界面小蛇移动、游戏进行状态、静音状态、得分反应的逻辑控制;
MyDatabaseHelper:用于连接SQLite数据库,创建user表,存储用户信息
SharedPre:用于用户历史最高分数、静音按钮状态信息存储的文件操作
RegisterActivity:用于注册界面的显示及按钮事件响应
LoginActivity:用于登录界面的显示及按钮事件的响应
FinalwinActivity:用于用户最终胜利界面的显示
4:用于国密4算法的工具类
Encryption:用于国密4算法的加解密
Images:用于游戏主界面的小蛇、食物等动态构件绘制
ChooseActivity:游戏菜单界面的显示及按钮事件响应
SoundPlay:用于游戏中的按钮音效、吃到食物音效、游戏失败音效的短音频控制
BGMServer:用于游戏中的背景音乐(长音频)控制
共设计6个布局文件:
activity_beginning.xml:开始动画界面布局
activity_finalwin.xml:最终胜利界面布局
activity_login.xml:登录界面布局
activity_main.xml:游戏主界面布局
activity_register.xml:注册界面布局
activity_start_view.xml:游戏菜单界面布局
本次课程设计目的在于使用java语言设计一款手机贪吃蛇小游戏,为了达到最好的用户体验效果,我学习使用Android Studio进行项目开发,在项目开发过程中,学到了很多新的知识与技能,切实体会到项目开发的完整流程,并在此过程中不断增加需求、完善功能、优化结构,从最开始的游戏逻辑到用户界面一步步进行完善与修改,从数据库连接、文件操作到apk打包等种种操作,见证自己的第一个apk诞生的全过程,获得感颇丰。
下面例举一些项目开发中遇到的问题及解决方案:
一些资源文件引用、调用错误:如引入png图片文件时文件路径不能有中文,value中的颜色 定义文件colors.xml中定义了一个格式不支持的颜色;音频文件引用时的后缀名称问题,提示编码错误,改为.text后缀类型即可正常使用
一些代码逻辑需要学习巩固:如贪吃蛇游戏中的多线程处理、Android Studio中的SQLite连接及文件操作、布局xml文件的代码编写方法、布局与构件种类、4国密密码算法等。
一些小功能实现需要去学习:隐藏标题栏、隐藏手机状态栏、开机动画停留3秒、各个界面之间的自动跳转、获取手机屏幕宽度、音频导入与播放、APK打包、APK属性信息设置。
一些小bug需要一个个改正:如贪吃蛇初始化时头的方向若向左,初始运动方向设置为向右便会出场阵亡;食物的图标尺寸大于运动单元,则会出现小蛇看上去吃到食物实际上却并没有到达那个坐标;小蛇的初始位置太偏不容易调整初始进入游戏的状态;由于未在AndroidManifest.xml文件中注册界面的Activity,导致界面跳转时出现软件闪退情况;游戏菜单界面的三个按钮都加音效会导致软件闪退等等……
解决各种问题的过程正是自我提高的过程,弥足珍贵。
开发过程中遇到的这样各种各样的小问题还有很多,现已难以尽数列出……
GreedySnake这个程序虽然已经尽力去完善与改进了,但仍然存在一些小问题,如游戏界面中背景音乐播放使用了MediaPlayer类,按钮音效等短音频处理使用了SoundPool,而MediaPlayer仅支持同时播放一个音频,故播放背景音乐时按钮音效并不能体现……
错误和bug不让人感觉快乐,但程序员的乐趣就在于解决一个又一个报错,修改一个又一个bug。
安宁版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com