




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter08消除图像闪烁 8 1简介8 2设计方法8 3消除动画闪烁8 4消除棋盘闪烁8 5消除射击图像闪烁8 6习题 8 1简介 细心的读者可能已经注意到 上述各章的图像动画都有闪烁漂浮的情况 这是因为新的图像随时替换旧的图像 如此才能使图像在窗口中显示出位置的变化或姿态的变化 如果图像替换得太快 其速度超过了计算机系统的负荷 有些部分先到位 有些部分后到位 则图像将会显得闪烁而不稳定 这也是计算机游戏设计不希望看到的 本章将介绍如何消除这样的闪烁 8 2设计方法 为了消除图像闪烁 我们可设置一个缓冲页 BufferPage 将新图像先置入缓冲页 等图像各部分都绘制完成后 再将缓冲页显示在窗口中 这样就可消除图像的闪烁 程序设计过程中我们将使用Image Component Graphics等类的方法 8 3消除动画闪烁 为了消除图像闪烁 我们可设置一个缓冲页 BufferPage 将新图像先置入缓冲页 等图像各部分都绘制完成后 再将缓冲页显示在窗口中 这样就可消除图像的闪烁 根据8 2 4节中消除图像闪烁的程序代码 设计范例46 消除单幅动画闪烁的现象 范例46 参考范例18 1 设计文件Ex8 3 1 java 其功能是解释消除单幅动画闪烁的应用 01importjava awt 02importjava awt event 03publicclassEx8 3 1extendsFrameimplementsRunnable 04intx 0 y 100 05intdx 5 dy 5 06Imageimg bufferPage null 07publicstaticvoidmain Stringargs 08Ex8 3 1workStart newEx8 3 1 09 范例46续1 10publicEx8 3 1 11super Ex8 3 1 12setSize 350 350 13Toolkittk Toolkit getDefaultToolkit 14img tk getImage fly gif 15enableEvents AWTEvent WINDOW EVENT MASK 16setVisible true 17newThread this start 18 19publicvoidprocessWindowEvent WindowEvente 20if e getID WindowEvent WINDOW CLOSING 21System exit 0 22 23 范例46续2 24publicvoidrun 25while true 26x x dx 27y y dy 28repaint 29if x getWidth dx 5 31if y getHeight dy 5 33try Thread sleep 250 34catch InterruptedExceptione 35 36 范例46续3 37publicvoidupdate Graphicsg 38paint g 39 40publicvoidpaint Graphicsg 41Graphicsbufferg 42if bufferPage null 43bufferPage createImage 350 350 44bufferg bufferPage getGraphics 45bufferg drawImage img x y this 46bufferg dispose 47g drawImage bufferPage getInsets left getInsets top this 48 49 范例47 参考范例19 文件Ex8 3 2 java 其功能是解释消除多幅动画闪烁的应用 01importjava awt 02importjava awt event 03publicclassEx8 3 2extendsFrameimplementsRunnable 04intnum 0 flag 05intx 0 y 100 dx 5 dy 5 06Imageimg0 img1 img2 bufferPage null 07publicstaticvoidmain Stringargs 08Ex8 3 2workStart newEx8 3 2 09 范例47续1 10publicEx8 3 2 11super Ex8 3 2 12setSize 350 350 13Toolkittk Toolkit getDefaultToolkit 14img0 tk getImage fly0 gif 15img1 tk getImage fly1 gif 16img2 tk getImage fly2 gif 17enableEvents AWTEvent WINDOW EVENT MASK 18setVisible true 19newThread this start 20 范例47续2 21publicvoidprocessWindowEvent WindowEvente 22if e getID WindowEvent WINDOW CLOSING 23System exit 0 24 25 26publicvoidrun 27while true 28x x dx 29y y dy 30flag num 3 31repaint 32num num 1 范例47续3 33if x 350 dx 5 35if y getHeight dy 5 37try Thread sleep 250 38catch InterruptedExceptione 39 40 41publicvoidupdate Graphicsg 42paint g 43 范例47续4 44publicvoidpaint Graphicsg 45Graphicsbufferg 46if bufferPage null 47bufferPage createImage 350 350 48bufferg bufferPage getGraphics 49if flag 0 50bufferg drawImage img0 x y this 51elseif flag 1 52bufferg drawImage img1 x y this 53elseif flag 2 54bufferg drawImage img2 x y this 55bufferg dispose 56g drawImage bufferPage getInsets left getInsets top this 57 58 8 4消除棋盘闪烁 根据8 2 4节中消除图像闪烁的程序代码 设计范例48 消除棋盘闪烁的现象 包括棋盘网格线与棋子图片 范例48 参考范例40 设计文件Ex8 4 java 其功能是解释消除棋盘闪烁的应用 01importjava awt 02importjava awt event 03publicclassEx8 4extendsFrameimplementsRunnable 04intx y 05Imageimg bufferPage 06int area flag newint 9 07inti 08publicstaticvoidmain Stringargs 09Ex8 4workStart newEx8 4 10 范例48续1 11publicEx8 4 12super Ex8 4 13setSize 250 280 14Toolkittk Toolkit getDefaultToolkit 15img tk getImage Circle GIF 16enableEvents AWTEvent WINDOW EVENT MASK 17enableEvents AWTEvent MOUSE EVENT MASK 18setVisible true 19newThread this start 20 21publicvoidprocessWindowEvent WindowEvente 22if e getID WindowEvent WINDOW CLOSING 23System exit 0 24 25 范例48续2 26publicvoidprocessMouseEvent MouseEvente 27if e getID MouseEvent MOUSE PRESSED 28x e getX 29y e getY 30 31 32publicvoidrun 33while true 34if x 30 范例48续3 38elseif x 90 50 范例48续4 51publicvoidpaint Graphicsg 52Graphicsbufferg 53if bufferPage null bufferPage createImage 250 250 54bufferg bufferPage getGraphics 55bufferg drawLine 90 50 90 230 56bufferg drawLine 150 50 150 230 57bufferg drawLine 30 110 210 110 58bufferg drawLine 30 170 210 170 59for i 0 i 9 i 60if area flag 0 1 bufferg drawImage img 42 60 this 61if area flag 1 1 bufferg drawImage img 102 60 this 范例48续5 62if area flag 2 1 bufferg drawImage img 164 60 this 63if area flag 3 1 bufferg drawImage img 42 125 this 64if area flag 4 1 bufferg drawImage img 102 125 this 65if area flag 5 1 bufferg drawImage img 164 125 this 66if area flag 6 1 bufferg drawImage img 42 187 this 67if area flag 7 1 bufferg drawImage img 102 187 this 68if area flag 8 1 bufferg drawImage img 164 187 this 69 70bufferg dispose 71g drawImage bufferPage getInsets left getInsets top this 72 73 8 5消除射击图像闪烁 根据8 2 4节中消除图像闪烁的程序代码 设计范例49 消除射击图像闪烁的现象 包括发射器与子弹 范例49 参考范例45 设计文件Ex8 5 java 其功能是解释消除射击图像闪烁的应用 01importjava awt 02importjava awt event 03publicclassEx8 5extendsFrameimplementsRunnable 04intx 150 y 235 dx dy 05intbx by dbx 0 dby 5 bflag 0 06Imageimg bufferPage null 07publicstaticvoidmain Stringargs 08Ex8 5workStart newEx8 5 09 范例49续1 10publicEx8 5 11super Ex8 5 12setSize 350 350 13Toolkittk Toolkit getDefaultToolkit 14img tk getImage car090 gif 15enableEvents AWTEvent WINDOW EVENT MASK 16enableEvents AWTEvent KEY EVENT MASK 17setVisible true 18newThread this start 19 20publicvoidprocessWindowEvent WindowEvente 21if e getID WindowEvent WINDOW CLOSING 22System exit 0 23 24 范例49续2 25publicvoidprocessKeyEvent KeyEvente 26if e getID KeyEvent KEY PRESSED 27switch e getKeyCode 28caseKeyEvent VK RIGHT 29dx 5 dy 0 30break 31caseKeyEvent VK LEFT 32dx 5 dy 0 33break 34caseKeyEvent VK UP 35dx 0 dy 5 36break 37caseKeyEvent VK DOWN 38dx 0 dy 5 39break 范例49续3 40caseKeyEvent VK SPACE 41dx 0 dy 0 42bx x 30 43by y 5 44bflag 1 45break 46default 47dx 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考专业(工商企业管理)金融理论与实务-企业管理概论参考题库含答案解析(5套)
- 2025年学历类自考专业(工商企业管理)国际企业管理-网络经济与企业管理参考题库含答案解析(5套)
- 农产品电商2025年发展策略与农村电商生态构建研究报告
- 2026届河南省周口市项城三高化学高二第一学期期中复习检测试题含解析
- 2025年学历类自考专业(小学教育)小学科学教育-中外教育简史参考题库含答案解析(5套)
- 2025年学历类自考专业(小学教育)小学教育科学研究-美育基础参考题库含答案解析(5套)
- 2025年学历类自考专业(小学教育)小学教育心理学-中外文学作品导读参考题库含答案解析(5套)
- 网上讲解剖课件
- 2025年学历类自考专业(学前教育)幼儿园教育活动设计与组织-学前卫生学参考题库含答案解析(5套)
- 个人与中小企业商合作合同模板
- 供应链金融业务管理办法
- 岩土工程勘察服务投标方案(技术方案)
- 单向板肋梁楼盖设计计算书
- 吉林大学 人工智能原理 下
- 医院护理培训课件:《急诊氧气治疗专家共识》
- 身份证地区对应码表
- 洗车场专项施工方案
- YY/T 1766.3-2023X射线计算机体层摄影设备图像质量评价方法第3部分:双能量成像与能谱应用性能评价
- 中药饮片采购配送服务投标方案
- 人教版七年级上册语文第一单元测试题(含答案)
- 艺术概论PPT完整全套教学课件
评论
0/150
提交评论