- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 Java游戏开发基础 本章学习目标 理解java 2D图形图像绘制方法。 理解图形图像坐标变换的技术。 掌握动画生成技术。 掌握动画闪烁消除技术。 11.1 概述 Java是一种具有丰富功能的编程语言,它的跨平台性、安全性、健壮性、支持分布式网络应用、以及面向对象特性都非常适合游戏开发。 Java有两种不同类型的程序,一种是在计算机上独立运行的Java应用程序(Java application),另一种是在浏览器里面运行的Java小应用程序(Java applet)。两种程序都可以用于游戏开发,基本技术和和思想是一致的。 11.2 绘制2D图形图像 一款游戏能否激起人们的兴趣并在游戏上付出时间,游戏的画面是否吸引人是关键因素之一 。 Java提供了丰富的类库来帮助绘制合适的文本和图形图像,这些类库多数都包含在了java.awt、java.awt.image、java.awt.geom和javax包中。 11.2.1 坐标体系 显示器由许多微小的像素组成,每个像素就是一个带有颜色的光点,屏幕水平和垂直方向的像素数就称为屏幕的分辨率。 把屏幕的左上角当做坐标原点,并把向右向下当做坐标的正向增长。位置坐标可以用(x, y)表示,其中x表示水平方向距离原点的像素数,y表示垂直方向距离原点的像素数 。 Java的一些容器组件,比如Window、Panel、Frame、JFrame、Applet,在其上绘制文本与图形图像时用到的位置坐标,也是以组件的左上角为原点,以像素为长度单位 。 11.2.1 坐标体系 11.2.2 绘制图形 java中通过java.awt包中的Graphics类绘制图形图像,这个工具在绘图时存在一定的局限性,比如不能旋转图形 。 在java SE 1.2版本中引入了java 2D类库,这些类库基本都包含在java.awt包和java.awt.geom包中 ,比如Point2D、Line2D、Rectangle2D、Ellipse2D 。 想要绘制这些图形必须通过Graphics2D类的对象,Graphics2D是Graphics类的子类,Frame、Applet等的paint或paintComponent方法自动接收到Graphics2D类的对象 。 11.2.2 绘制图形 在需要Graphics2D类的方法时,直接类型转换为Graphics2D类型即可: paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; g2d.xxxx();} 11.2.2 绘制图形 Graphics2D对象的draw和fill方法绘制图形和填充图形,两个方法都以Shape接口类型作为参数,根据java的多态特性,任何一个实现了Shape接口的类型都可以作为draw和fill的参数,例如:Rectangle2D rectangle = new ......?;g2d.draw(rectangle)?; 11.2.2 绘制图形 java 2D类库为图形类提供了两个版本,一个具有float类型坐标,一个具有double类型坐标。 比如Rectangle2D类,只是一个抽象类,它具有两个静态内部子类:Rectangle.Float、Rectangle.Double。 创建单精度和双精度坐标的矩形时可以提供矩形左上角水平和垂直坐标以及矩形的宽度和高度: 11.2.2 绘制图形 Rectangle2D rectf = new Rectangle2D.Float(40, 60, 200, 100);g2d.draw(rectf); Rectangle2D rectd = new Rectangle2D.Double(40, 180, 200, 100); g2d.draw(rectd); 11.2.2 绘制图形 【例11-1】DrawShapeTest.java 【例11-1】DrawShapeTest.javapublic class DrawShapeTest extends JFrame { …… public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; Rectangle2D rect = new Rectangle2D.Double(40, 60, 200, 100); g2d.draw(rect); Line2D line = new Line2D.Double(40, 60, 240, 160);
您可能关注的文档
- 第3章动量守恒汇编.ppt
- 第5章静电场汇编.pptx
- 第10章超声成像仪器3概述.ppt
- 第3章动量与角动量汇编.ppt
- 第3章锻造的加热汇编.ppt
- 第5章离散傅立叶变换与快速算法1(DFT2)汇编.ppt
- 第10章的变形与回复再结晶概述.ppt
- 第3章方法汇编.ppt
- 第五章洁净室设计概述.pptx
- 第5章铝硅系耐火-3汇编.ppt
- Unit 6 Get Close to Nauture Lesson 22 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 23 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025食品饮料行业AI转型白皮书-2025食品饮料行业数智化转型领先实践.pdf
- Unit 7 Be Together Lesson 24 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 25 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 26 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025年广州体育职业技术学院单招职业倾向性考试题库完美版.docx
- 软件公司员工考勤异常处理.doc
- 2025年土地登记代理人之土地登记相关法律知识题库500道及完整答案【有一套】.docx
- 2025年四平职业大学单招职业适应性考试题库含答案.docx
最近下载
- 深入贯彻中央八项规定精神学习教育知识测试题库(含答案)_可搜索.pdf VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(5).自动飞行控制功能.docx VIP
- 瘦终端thinos安装使用手册.pdf VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(8).飞行仪表显示与界面.docx VIP
- 施工升降机拆除作业安全技术交底完整版.doc VIP
- 《脑淀粉样血管病》课件 .ppt VIP
- 飞行控制系统(FCS)系列:Honeywell Primus Epic_(12).安全与合规性要求.docx VIP
- 雕塑艺术行业发展预测分析.docx
- 新员工三级安全培训考试试题(含答案).docx VIP
- 高中新教材历史选择性必修一课件单元整合.pptx VIP
文档评论(0)