- 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
- 中国国家标准 GB/T 45390-2025动力锂电池生产设备通信接口要求.pdf
- 中国国家标准 GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型.pdf
- 《GB/T 45393.2-2025信息技术 建筑信息模型(BIM)软件 第2部分:参数化模型》.pdf
- GB/T 10184-2025电站锅炉性能试验规程.pdf
- 海尔智家股份有限公司海外监管公告 - 海尔智家股份有限公司2024年度环境、社会及管治报告.pdf
- 上海复旦张江生物医药股份有限公司2024 环境、社会及管治报告.pdf
- 中国邮政储蓄银行股份有限公司中国邮政储蓄银行2024年可持续发展报告.pdf
- 豫园股份:2024年环境、社会及管治(ESG)报告.pdf
- 南京熊猫电子股份有限公司海外监管公告 - 2024年度环境、社会及治理(ESG)报告.pdf
文档评论(0)