已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电信大业务合同范本
- 私下签协议还写合同
- 个人房屋租赁合同5
- 无乳糖营养包培训
- 疱疹常见症状及护理方法解析
- 自我介绍新人入职
- 老年人社区营养保障体系建设
- 2025-2026学年安徽省江淮名校高一上学期10月阶段联考地理试题(A卷)
- 白内障症状分析及护理技巧
- 儿科常见疾病健康宣教
- 建材五金行业招商策划
- DL-T 2561-2022 立式水轮发电机状态检修评估技术导则
- 培训班授课教师课时费用领取表
- 财政投资项目评审服务投标方案(技术方案)
- 重庆东能新材料有限公司10 万吨-年非光气法生产聚碳酸酯项目(一期 6 万吨-年碳酸二甲酯项目)环境影响报告书
- 职业道德-国家职业资格培训教程课件
- (人防)车位使用权转让协议书
- 皮肤软组织骨恶性肿瘤演示文稿
- GB/T 26396-2011洗涤用品安全技术规范
- 物理化学简明教程(印永嘉)复合反应动力学468211522
- 分镜头脚本表格 -示例
评论
0/150
提交评论