版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七讲 创建游戏世界背景,内容提要,Java2D图像绘制简介 卷轴型背景贴图 砖块型背景贴图,7.1 Java2D图像绘制,支持图像文件格式 GIF、JPG、 PNG 图像处理流程,主要的图像类 Image、ImageIcon、BufferedImage 图像文件的载入方式 Image im; im =ImageIO.read( getClass( ).getResource(ball.gif) ); 图像的绘制方式 g.drawImage(im, 0, 0, null);,BuffedImage,优点: 提供各种关于图像效果处理的方法 加速图像的显示速度,创建BufferedImage对象
2、BufferedImage bim = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 载入图像文件 bim=ImageIO.read(getClass( ).getResource(ball.gif); 绘制图像 g.drawImage(bim, 0, 0, null);,7.2 绘制游戏背景图像,卷轴型图像(ribbon) 砖块型图像(tile),1 绘制卷轴型图像,步骤 创建BufferedImage对象,并载入图像文件 将此图像绘制到屏幕后缓冲中 将图像显示到屏幕 多个图像叠加绘制 注意绘制次序:层次越深的越
3、先绘制 (参见例子7.1),图像的叠加(注意绘制次序),2 滚动卷轴型图像,何为滚动(scroll)? 让图像的不同部分依次从程序窗口中“经过”(如同坐火车,卷轴图像好比风景,程序窗口好比火车车窗) 为何滚动? 图像尺寸大于窗口尺寸 制造移动效果,局部(程序)坐标系vs世界(外部)坐标系 局部坐标系:原点为程序窗口左上角 世界坐标系:原点为图像区域左上角 绘制方式:循环滚动 g.drawImage(im, DX1, DY1, DX2, DY2, SX1, SY1, SX2, SY2, observer);,情况1: if (xImHead = 0) / draw im head at (0,0
4、) draw(g, bim, 0, pWidth, 0, pWidth); ,情况2: else if (xImHead 0) ,情况3: else if (xImHead = pWidth) / only draw im tail at (0,0) draw(g, bim, 0, pWidth,width - xImHead, width - xImHead + pWidth); ,情况4: else if (xImHead = pWidth - width) draw(g, bim, 0, pWidth, -xImHead, pWidth - xImHead); ,情况5: else if
5、 (xImHead pWidth - width) / draw im tail at (0,0) and im head at (width+xImHead,0) draw(g, bim, 0, width + xImHead, -xImHead, width); draw(g, bim, width + xImHead, pWidth, 0, pWidth - width - xImHead); ,滚动控制,1.按下键盘左键时背景图像向左滚动还是向右? 按左键向右滚,按右键向左滚 2.背景图像滚动时如何改变xImHead值? 向右滚时XImHead增加,反之减少 3.多个背景同时滚动时有什
6、么特点? 层次越深的背景图像滚动速度越慢,3 绘制tile图像,绘制过程:在程序窗口“贴瓷砖”,(1)用单一tile图像填充游戏背景,利用循环语句 for(int i=0;i=WIDTH/tileSize;i+) for(intj=0;j=HEIGHT/tileSize;j+) dbg.drawImage(tile, i*tileSize, j*tileSize, null);,(2)用tile地图文件绘制背景,用文本文件形式表示的tile地图,载入并分析地图文件:使用FileReader 逐行读入文本信息,如果该行以#开头则跳过 否则逐个读入字符,A至I分别表示以下tiles,程序中存放tile地图:二维数组 tilesij:保存tile地图文件第i行第j列位置的tile图像 tiles数组下标与世界坐标的转换关系: 下标转坐标: x=j*TileSize y=i*TileSize 坐标转下标: j=x/TileSize i=y/TileSize,4 滚动tile地图,滚动方式:单向(自右向左) 绘制方式:类似卷轴图像的绘制 控制方式:按右键xMapHead值减少,5 将卷轴与tile图像结合,注意 1.绘制的次序: 先卷轴图像后tile图像 2.滚动速度: 层次越深的速度越慢 创建backGroundMana
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设工程合同管理监理工作细则
- 广告公司会计实习报告
- 电话营销年终工作总结2022范文样本
- 房地产所有权抵押合同书(3篇)
- Lambertianic-acid-生命科学试剂-MCE
- L-662583-生命科学试剂-MCE
- 小学防溺水领导讲话稿6篇
- JZD-07-生命科学试剂-MCE
- 仪器设备共享使用协议书
- 厨房设计顾问服务合同
- 高速公路总体施工组织布置及规划方案
- 《中国现代文学》PPT课件
- 酒店客房验收工程项目检查表
- 包头医学院新开课程申请表
- 幼儿园课件:大班美术《美丽的邮票》
- (精心整理)初中物理串联分压和并联分流精练
- 道路开口工程施工设计方案
- 员工胜任力评价方案
- 仪表接地技术ppt课件
- 六年级科学总复习空气和水练习卷
- 视觉神经生理学复习
评论
0/150
提交评论