沈 阳 大 学 继 续 教 育 学 院
课 程 设 计
课程名称:JAVA程序设计
题目:Android老虎机游戏课程设计
班 级 :10计算机本科
学生姓名 :段胜松
学 号 :1008041001
指导教师 :
完成日期 2011 年 12 月 14 日
课程设计(
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
)要求:
设计时间: 2011年 12月10 日— 2011 年12 月 14 日
教师评语:
成绩: 教师签字
年 月 日
目 录
一、需求分析 4
1.1游戏描述 4
1.2 功能分析 4
1.3 进度安排 4
1.4开发环境 ·······························································4
二.总体设计 ·······························································6
2.1任务与目标································································6
2.2设计思路分析····················································6
2.3游戏结构设计 6
2.3.1总模块设计 ····························································6
2.3.2子模块设计 ····························································7
2.4游戏流程图 ····························································8
2.5界面设计 ······························································8
三、详细设计 9
3.1 转盘区设计 9
3.2操作区设计 10
3.2.1按钮界面设计 12
3.2.2功能实现 12
3.3界面设计
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
·····························································12
四.设计总结 13
五.
使用说明
爱威a9效果器使用图word使用说明在哪儿钻床数控系统用户手册玻璃钢风机使用说明书控制器用户说明书
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
····················································16
致谢······························································17
参考文献··························································18
1 需求分析
1.1 游戏描述
在android环境下开发一款老虎机游戏。游戏实现简单的投币,押注,退币等操作。首先启动游戏以后,会有一个界面,界面分成了两个部分,一个是游戏区,一个是操作区,游戏区有12张图片,12张水果图片,当游戏开始时,游戏区会有一个方块转动,最后会停下,按照停的位置以及在该位置的图片的押注情况给与奖励。操作区有13个按钮,一个开始按钮,用来命令系统游戏开始,一个是投币按钮,当然是用来投币,如果系统中没有金币余额,或者说还没有投币,游戏是不能进行的。相应的有退币和退出按钮,分别对应退出金币和退出游戏功能,另外9个水果的选项,点击它们,代表对它们进行押注,一次投一注。有了押注后游戏就可以开始了。
1.2 功能分析
投注功能:每次投入一个硬币,相应的会增加10个金币,用来押注。
退币功能:玩家不想继续游戏时,可以选择退币,金币:硬币=10:1,也就是说退出来的硬币的数目跟金币的比值是1:10,如40个金币,相应的会退40/10=4个硬币。
游戏开始:当有押注时,便可以执行游戏开始命令。
退出功能:当硬币已经退出了以后,可以选择退出按钮,退出游戏。
押注功能:有9个选项用来给玩家进行选择。
1.3 进度安排
根据游戏的需求分析,可以对开发过程进行如下安排,第一阶段对整个游戏界面进行设计,也就是布局,第二阶段对游戏功能进行完善,第三阶段对游戏软件进行测试,并扩展。在这个过程中,时刻做到用需求来规范设计行为。
1.4 开发环境
软件:
JDK 1.6 ;
Eclipse Ganymede 3.5 ;
Android SDK 2.2 ;
ADT0.9.7 ;
Windows XP ;
硬件:
Intel(R) Core(TM)2 Duo CPU E7500 @2.93GHZ ;
z.93GHz, 19.6GB 的内存物理地址扩展
2 总体设计
2.1 任务与目标
设计实现思路,构建整体框架,完成设计模型。
2.2 设计思路分析
此款游戏是个单机游戏,移植到基于android平台的手机上,首先应该具有稳定性,能够保障玩家在玩的过程中不会出现意外的bug,另外比较重要的就是界面的美观性,要把界面做的美观,这是玩家使用此款游戏的一个大的吸引点。界面要根据平台的整体大小进行设计,让布局比较合理,在空间感官上比较良好。
2.3 游戏结构设计
2.3.1总模块设计
首先进行总模块的设计,按照之前的需求分析,可以把这个游戏分成两大块,转盘区和操作区,由此可得总模块设计(图2.1)。
图2.1 游戏总模块结构图
2.3.2 子模块设计
有了总模块结构之后,可对子模块进行设计,按照总模块图,游戏设计包含了两个大的部分,一个是转盘区,一个是操作区。转盘区模块设计图如图2.2所示。
图2.2 转盘区模块结构
其中背景模块,我是用了一张图片做为整个游戏界面的背景,并配有背景音乐,让玩家能够在欣赏到优美的画面的同时,体验到紧张的游戏气氛,让玩家能够更兴奋,能够玩的更开心。
而转盘布局,因为是基于android平台,所以我特别的利用了这个平台的优势,我是将事先准备好的图片通过编码的形式,把图片通过线程,不断地画在整个游戏界面上。
背景相对于转盘布局来说还是比较容易的,在做转盘布局的时候,我开始是以一种定性的思维,就是想通过main.xml这种形式把每个图片画出来,从理论上,我已经突破了技术难关,但是在设计完后面,发现这样不行,然后改用线程,不断的通过线程把图片一张张画出来。
在画图片的时候,就要计算图片的大小,长短以及宽度,要把图片精确的放到指定的位置,而不应该与其他的图片发生重合,或者画出了边界。
进行了初步的构架,整个框架应该如图2.3所示。
图2.3 转盘区模块结构图
通过上面的分析,转盘区的基本模式结构已经出来了,下面就是操作区的设计,操作区就是玩家进行操作的部分。
操作区是实现功能的区域。
首先应该有一个投注按钮,另外要有开始按钮,对应的应该有退币和退出的按钮。有了这四个按钮,就能过实现基本的功能了,接下来就是要让游戏能够进行,下面就应该押注,因为我选的一共是8个水果图片,所以对应的有8个按钮来对应进行押注。
2.4 游戏流程图
老虎机的游戏流程如图2.4。
图2.4 游戏流程图
2.5 界面设计
通过上面的分析,得出如图2.5的界面。
图2.5 游戏界面
3 详细设计
经过上面的需求分析,以及总体设计过程,把游戏分成两大块,一个是转盘区,一个是操作区。下面从这两块对设计进行详细分析。
3.1 转盘区设计
转盘区的设计主要是对背景和转盘布局进行设计。
首先从相对比较复杂的转盘布局来说,我的设计思路是通过线程不断的把12张图片画在游戏画布上面,要实现这个不难。首先定义了12个Bitmap变量,分别为image0、image1、image2等12个。然后定义了3个int型的变量,分别是startX、startY、imageSize,其中startX、startY用来标记画图片时的横坐标和纵坐标。而imageSize表示图片的大小,也是用来画图片时要用到。变量定义完了然后就开始实现。在GameView(Context context)中把图片资源全部赋给我定义了的12个Bitmap变量。通过image0 = ((BitmapDrawable)getResources().getDrawable(R.drawable.image0)).getBitmap()这条语句实现赋值。这样子就把图片资源顺利的导入到了定义的变量中了,下面就是要利用线程,把这个资源画出来。
下面的语句是用来画图片的,把图片按照图2.3的结构画出来:
canvas.drawBitmap(image0, startX, startY, mPaint);
canvas.drawBitmap(image1, startX+imageSize, startY, mPaint);
canvas.drawBitmap(image2, startX+imageSize*2, startY, mPaint);
canvas.drawBitmap(image3, startX+imageSize*3, startY, mPaint);
canvas.drawBitmap(image11,startX, startY+imageSize, mPaint);
canvas.drawBitmap(image4, startX+imageSize*3, startY+imageSize, mPaint);
canvas.drawBitmap(image10,startX, startY+imageSize*2, mPaint);
canvas.drawBitmap(image5, startX+imageSize*3, startY+imageSize*2, mPaint);
canvas.drawBitmap(image9, startX, startY+imageSize*3, mPaint);
canvas.drawBitmap(image8, startX+imageSize, startY+imageSize*3, mPaint);
canvas.drawBitmap(image7, startX+imageSize*2, startY+imageSize*3, mPaint);
canvas.drawBitmap(image6, startX+imageSize*3, startY+imageSize*3, mPaint);