undedRect。
弧是使用6个参数来绘制的,前3个参数是弧所在的整个圆的外切矩形。剩下的两个参数是startAngle和arcAngle。Angle是度数,0为右侧(在三点的位置)的地方,180是左侧(在九点的位置)的位置。
(4)绘制文字
可以使用方法drawChar、drawChars、drawString和drawSubstring在Canvas上面绘制文字。
(5)图象和裁剪
裁剪让人可以把图象输出限制到显示设备的一个特定区域中,例如,如果将输出限制在一个从(10,10)开始到(50,50)的区域中,那么从那个时候起,没有图像会出现在显示设备上这个区域之外的任何地方。
(6)事件响应
实现一个或者多个按键事件响应方法:keyPressde、keyRleased和keyRepeated。
第三章手机游戏开发过程
3.1贪吃蛇游戏的规则简介以及开发环境
3.1.1贪吃蛇游戏的规则简介
在贪吃蛇游戏中,玩家操作由小方块连接而成的蛇,去吃随机散落在画面内的小方块,每吃一块就增加一小方块长度,要是撞壁以及撞自己的尾,就属于失败,如无失败则直到通关为止。
屏幕的长度的行向为11单位,纵向为18单位。在这个范围内,玩家通过操作方向键来控制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果。
3.1.2开发环境
(1)开发的硬件环境:CPUC1.7HZ/Maxor40G/DDR256M/CD-ROW40X
(2)开发软件:JDK1.3和J2MEWTK
3.2详细设计
本游戏的操作流程(如图3-1):用户在启动MIDlet后,即进入游戏主画面,屏幕开始显示为欢迎画面。用户按下[开始]按钮后,就可以开始玩游戏。当用户想暂停时,再次按一下[开始]按钮,游戏就暂停了,在暂停的情况下再按[开始]按钮,游戏继续运行。任何时候按[退出]按钮,游戏MIDlet都会终止。
图3-1操作流程
3.2.1代码设计
(1)游戏地图代码设计
游戏地图是蛇的活动范围和食物随机散落的范围,游戏的容器为行向为11单位,纵向为18单位,如下代码:
privatefinalintiX=10; //地图的开始坐标
privatefinalintiY=10; //
privatefinalintSWIDTH=16; //图标的宽度
privatefinalintiCells=11; //地图的列数
privatefinalintiRows=18; //地图的行数
privatefinalintiBoxW=SWIDTH*iCells; //地图的宽
采用二维绘图工具:二维绘图工具drawLine采用4个参数--直线起点的x、y坐标值和直线终点x、y的坐标值,例如:
graphics.drawLine(50,0,100,0);
这行代码会从位置(50,0)到(100,0)绘制一条直线。
绘制一个矩形是一个类似的过程,不同的只是需要用起点加上宽度和高度的方式来指定这个对象。可以绘制透明的或者填充的矩形,甚至可以绘制圆角的矩形。4个绘制矩形的方法是:drawRect、drawRoundedRect、fillRect和fillRoundedRect。
(2)贪吃蛇和食物的代码设计
屏幕的长度为行向为11单位,纵向为18单位;在这个范围内(如图3.3),玩家操作方向键控制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果。
图3-3游戏区域
贪吃蛇最初由3个小正方形组成,小正方形是蛇的身体和游戏容器的组成部分。食物也由一块小正方形组成,并且随机散落在游戏框图的区域内,每次只出现唯一的一个,待玩家操作游戏完成一个任务后面,再出现下个食物,小蛇每吃一个食物就增加一个长度。实现代码如下:
publicintgetCell(){
returniCell;
}
publicintgetRow(){
returniRow;
}
publicvoidshow(){
sLabel.setVisible(true);
}
publicbooleanisVisible(){
returnsLabel.isVisible();
}
publicvoidhide(){
sLabel.setVisible(false);
}
protectedvoidsetPosition(introw,intcell){
iCell=cell;
iRow=row;
sLabel.setBounds(cell*SWIDTH,row*SWIDTH,SWIDTH,SWIDTH);
}
publicvoidmoveUp(){
if(iRow>0)
setPosition(--iRow,iCell);
else
setTouch();
}
publicvoidmoveDown(){
if(iRow0)
setPosition(iRow,--iCell);
else
setTouch();
}
publicvoidmoveRight(){
if(iCell
上一篇:JAVAD的网络三维技术(论文和程序)
下一篇:试题库管理系统毕业论文