《Java游戏程序设计教程 第2版 教学课件 ppt 作者 何青 第5章 游戏场景设定(1)》由会员分享,可在线阅读,更多相关《Java游戏程序设计教程 第2版 教学课件 ppt 作者 何青 第5章 游戏场景设定(1)(18页珍藏版)》请在金锄头文库上搜索。
1、第5章 游戏场景设定(1) 绘制卷轴型图像,内容提要,Java2D图像绘制简介 绘制卷轴型图像 滚动卷轴型图像,1.Java2D图像绘制,支持图像文件格式 GIF、JPG、 PNG 图像处理流程,主要的图像类 Image、ImageIcon、BufferedImage 图像文件的载入方式 Image im; im =ImageIO.read( getClass( ).getResource(“ball.gif“) ); 图像的绘制方式 g.drawImage(im, 0, 0, null);,BufferedImage,优点: 提供各种关于图像效果处理的方法 加速图像的显示速度,创建Buffe
2、redImage对象 BufferedImage bim = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 载入图像文件 bim=ImageIO.read(getClass( ).getResource(“ball.gif“); 绘制图像 g.drawImage(bim, 0, 0, null);,游戏场景图像,卷轴型图像(ribbon) 砖块型图像(tile),2.绘制卷轴型图像,步骤 创建BufferedImage对象,并载入图像文件 将此图像绘制到屏幕后缓冲中 将图像显示到屏幕 多个图像叠加绘制 注意绘制次序
3、:层次越深的越先绘制 (参见例5_1),图像的叠加(注意绘制次序),3.滚动卷轴型图像,何为滚动(scroll)? 让图像的不同部分依次从程序窗口中“经过”(如同坐火车,卷轴图像好比风景,程序窗口好比火车车窗) 为何滚动? 图像尺寸大于窗口尺寸 制造移动效果,局部(程序)坐标系vs世界(外部)坐标系 局部坐标系:原点为程序窗口左上角 世界坐标系:原点为图像区域左上角 绘制方式:循环滚动 g.drawImage(im, DX1, DY1, DX2, DY2, SX1, SY1, SX2, SY2, observer);,情况1: if (xImHead = 0) / draw im head a
4、t (0,0) drawRibbon(g, bim, 0, pWidth, 0, pWidth); ,情况2: else if (xImHead 0) ,情况3: else if (xImHead = pWidth) / only draw im tail at (0,0) drawRibbon(g, bim, 0, pWidth,width - xImHead, width - xImHead + pWidth); ,情况4: else if (xImHead pWidth - width) / draw im tail at (0,0) and im head at (width+xImH
5、ead,0) drawRibbon (g, bim, 0, width + xImHead, -xImHead, width); drawRibbon(g, bim, width + xImHead, pWidth, 0, pWidth - width - xImHead); ,情况5: else if (xImHead = pWidth - width) drawRibbon(g, bim, 0, pWidth, -xImHead, pWidth - xImHead); ,滚动控制,1.按下键盘左键时背景图像向左滚动还是向右? 按左键向右滚,按右键向左滚 2.背景图像滚动时如何改变xImHead值? 向右滚时xImHead增加,反之减少 3.多个背景同时滚动时有什么特点? 层次越深的背景图像滚动速度越慢 (参见例5_2),作业,制作RPG游戏地图,使用卷轴图像实现(x,y方向同时滚动),