第七讲创建游戏世界背景.ppt_第1页
第七讲创建游戏世界背景.ppt_第2页
第七讲创建游戏世界背景.ppt_第3页
第七讲创建游戏世界背景.ppt_第4页
第七讲创建游戏世界背景.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论