- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章-3 绘制2D图形
绘制文字,使文字中心与单元格中心重合 字体高度是单元格高度的3/4 字体的宽高比与单元格相同 3.2 输入数字 处理键盘输入,在onKeyDown()方法中添加处理各个按键的分支语句 处理触摸屏输入,重写onTouchEvent()方法,并显示软键盘 上述对键盘事件和触摸屏事件的处理中,均调用了setSelectedTile()方法,该方法用于修改单元格中的数字; 3.3 增加提示 根据单元格可填入的数字的个数绘制不同的背景 3.4 抖动屏幕 当用户输入一个明显无效的数字,此时让屏幕抖动 修改setSelectedTile(),添加无效输入抖屏 在res/anim/shake.xml文件中定义动画资源 动画插补器主要控制动画的运行次数、速度、加速度 下面是上抖屏动画的动画插补器的XML定义 4 实现游戏功能 实现软键盘 实现游戏逻辑 本节内容与绘图没有关系,是游戏实现功能的控制环节,只做了解 4.1 创建软键盘 支持触摸屏输入 在游戏盘面的前端显示一个软键盘对话框 返回玩家所选择的数字 在res/layout/keypad.xml文件中创建用户布局 定义Keypad类 实现软键盘对话框 隐藏对于当前单元格无效的数字 启动软键盘对话框 在软键盘中隐藏无效的数字 关联视图ID 循环处理软键盘的每个键,为每个键设置监听器 重写onKeyDown(),支持玩家使用键盘输入数字 isValid()方法检查给定数字对当前单元格是否有效 如果给定数字已在used数组中,则该数字无效 Used数组存放某单元格所在行、列或宫中已使用的数字 returnResult()方法将玩家选定的数字返回给当前调用的活动 puzzleView.setSelectedTile(tile)方法更改当前单元格的数字 在Game类中调用keypad() 4.2 实现游戏逻辑 仅当输入的值对于当前单元格有效,才将单元格的值设置为新输入的值 为游戏盘面中的每个单元格建立一个数组 对于每个单元格,此数组维护一个当前已经填入到该单元格所在行、列和宫格的其他单元格中的数字列表 若一个数字出现在列表中,则这个数字对当前单元格无效 提取给定位置单元格的数字列表 缓存数组used[x][y],通过calculatedUsedTiles()方法计算数组 在每个单元格的位置调用calculatedUsedTiles(x,y)方法 计算此位置的行、列、宫已有的数字 检查当前位置所在行的单元格 压缩数组,返回只包含非0值的数组 这一步处理,便于使用array.length返回当前单元格所在的行、列、宫格已经使用的数字个数 4.3 其他功能 在游戏中使用3个硬编码的数独游戏分别表示easyPuzzle、mediumPuzzle、hardPuzzle 接收难度基本并返回一次游戏 将用数组表示的游戏转换为字符串 将字符串转换为表示游戏的数组 getTile()方法接收单元格的x和y坐标,返回该单元格当前的数,如果数字为0,表示单元格空白 显示单元格时会用到getTileString()方法,该方法返回的字符串表示给定单元格中的数字,如果单元格为空,则返回一个空字符串 4.5 改进程序 要实现最优的设备性能,需要精心设计更复杂的程序 onDraw()方法对程序的性能影响较大,应该尽可能降低影响 提高onDraw()方法的执行效率 避免在onDraw()方法中执行任何对象分配操作 在onDraw()方法以外的地方预取颜色常量等属性值 预先创建自定义Paint类对象,在onDraw()方法中只使用已定义的Paint类对象 对于多次使用的值(如getWidth()方法返回的宽度值),在方法开始处将其提取出来,然后使用本地副本访问 本章只是简单介绍了2D图形的绘制 可以通过进一步的学习,设计更加丰富的界面 阅读android.graphics包的在线文档掌握更多的绘图方法 4.6 本章小结 Android图形基础 掌握2D图形绘制的基本类 在程序中绘制2D图形 绘制网格、字符等各种几何图形 处理自定义视图上的输入 控制、刷新 不显示视图,但仍然占据布局中的位置 为软键盘中的键设置监听器 关联键盘及键的视图ID 用按钮对应的数字作为参数t 软键盘上按键以外的地方 键盘输入有效时,调用该方法 检查给定数字的有效性 关闭对话框 提取给定位置单元格的数字列表 循环遍历数组 返回指定单元格中的数字 将单元格的数字添加到数组 检查列 检查宫格 将字符串转换为表示游戏的数组 * getResources()方法返回当前活动的ResourceManager类,getColor()方法要求管理器管理根据资源ID查找某个颜色。 此前的工作 创建Game活动 定义PuzzleView视图 当开始一个新游戏,启动Game活
文档评论(0)