bookjavavol-3图形与网络游戏开发ch01andpart_第1页
bookjavavol-3图形与网络游戏开发ch01andpart_第2页
bookjavavol-3图形与网络游戏开发ch01andpart_第3页
bookjavavol-3图形与网络游戏开发ch01andpart_第4页
bookjavavol-3图形与网络游戏开发ch01andpart_第5页
免费预览已结束,剩余25页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PART 01基础图文动画chapter 01文字绘制1-1 简介1-2 Frame类1-3 线程绘图流程1-4 Font类1-5 Color类1-6 中文处理1-7 习题1-1 简介 本书探讨的是动画游戏,包括文字、图像和动画,这些都需要一个环境来显示。常用的显示工具是框架(Frame)与浏览器(Browser),前者可用于单机显示或多机网络对阵;后者可用于单机网络显示,本书将对它们进行详细介绍。本章将使用框架来显示基础图文。1-2 Frame 类 java.awt.Frame继承(extends)自WindowContainerComponentObject,此类对象可以创建一个窗口,配合

2、Java程序以提供单机图文或多机网络对阵图文的显示。范例1:文件Ex1_2_1.java的功能是解释窗口框架的创建。 01 import java.awt.*;02 class Ex1_2_1 03 public Ex1_2_1() 04 Frame frame = new Frame(Ex1_2_1);05 frame.setSize(350, 350);06 frame.setVisible(true); 07 08 public static void main(String args) 09 Ex1_2_1 workstart = new Ex1_2_1();10 11 范例2:文件E

3、x1_2_2.java的功能是解释继承Frame类的使用方法。 01 import java.awt.*;02 public class Ex1_2_2 extends Frame 03 public Ex1_2_2() 04 super(Ex1_2_2);05 setSize(350, 350);06 setVisible(true);07 08 public static void main(String args) 09 Ex1_2_2 workStart=new Ex1_2_2();10 11 1-3 线程绘图流程 在绘图或游戏应用上,发生事件的区域范围不仅广大,且数量也多不胜数。在程

4、序设计中,我们必须考虑事件线程同步并行的情况,当CPU能力允许时各线程竞争进入CPU运行,以提高运行效率。为了达到这些要求,我们使用Thread类、Runnable接口和Component类。线程绘图流程01 public class myWork extends Frame implements Runnable 02 public static void main(String args) 03 myWork workStart=new myWork ();04 05 public myWork () 06 super(myWork);07 setSize(350, 350);08 set

5、Visible(true);09 new Thread(this).start();10 11 public void run() 12 13 repaint();14 15 public void paint(Graphics g) 16 17 18 1-4 Font 类 java.awt.Font继承(extends)自Object,此类对象定义字体的规格,包括字体名称(如Times New Roman)、字体模式(如BOLD)和字号(如10)等。范例3:文件Ex1_4_1.java的功能是解释如何以Font类来创建字体对象? 01 import java.awt.*;02 import

6、java.awt.event.*;03 import java.awt.Graphics;04 import java.awt.Font;05 public class Ex1_4_1 extends Frame implements Runnable 06 Font messageFont;07 String message;08 public static void main(String args) 09 Ex1_4_1 workStart=new Ex1_4_1();10 范例3 续11 public Ex1_4_1() 12 super(Ex1_4_1);13 setSize(350

7、, 350);14 setVisible(true);15 new Thread(this).start();16 17 public void run() 18 messageFont = new Font(TimesRoman, Font.PLAIN, 20);19 message = This is a test string;20 repaint();21 22 public void paint(Graphics g) 23 g.setFont(messageFont);24 g.drawString(message, 5, 50);25 26 范例4:文件Ex1_4_2.java的

8、功能是解释Font类各实例方法的应用? 01 import java.awt.*;02 import java.awt.event.*;03 import java.awt.Graphics;04 import java.awt.Font;05 public class Ex1_4_2 extends Frame implements Runnable 06 Font messageFont;07 String message;08 public static void main(String args) 09 Ex1_4_2 workStart=new Ex1_4_2();10 11 pub

9、lic Ex1_4_2() 12 super(Ex1_4_2);13 setSize(350, 350);14 setVisible(true);15 new Thread(this).start();16 范例4 续17 public void run() 18 messageFont = new Font(TimesRoman, Font.PLAIN, 20);19 message = This is a test string;20 System.out.println(getName() : + messageFont.getName();21 System.out.println(g

10、etStyle() : + messageFont.getStyle();22 System.out.println(getSize() : + messageFont.getSize();23 System.out.println(isBold() : + messageFont.isBold();24 System.out.println(isItalic() : + messageFont.isItalic();25 System.out.println(isPlain() : + messageFont.isPlain();26 repaint();27 28 public void

11、paint(Graphics g) 29 g.setFont(messageFont);30 g.drawString(message, 5, 50);31 32 1-5 Color 类java.awt.Color继承(extends) 自Object,为public final Class,此类对象用于定义颜色值,因是final类别,故不得被继承使用。范例5:文件Ex1_5_1.java的功能是解释Color类的构造函数参数颜色值的设置。 01 import java.awt.*;02 import java.awt.event.*;03 import java.awt.Graphics;0

12、4 import java.awt.Font;05 public class Ex1_5_1 extends Frame implements Runnable 06 Font messageFont;07 String message;08 Color color1, color2, color3;09 public static void main(String args) 10 Ex1_5_1 workStart=new Ex1_5_1();11 范例5 续112 public Ex1_5_1() 13 super(Ex1_5_1);14 setSize(350, 350);15 set

13、Visible(true);16 new Thread(this).start();17 18 public void run() 19 color1 = new Color(212, 255, 0);20 color2 = new Color(0 xd4ff00);21 color3 = new Color(0.83f, 1.0f, 0.0f);22 messageFont = new Font(TimesRoman, Font.PLAIN, 20);23 message = This is a test string;24 repaint();25 范例5 续226 public void

14、 paint(Graphics g) 27 g.setFont(messageFont);28 g.setColor(color1);29 g.drawString(message, 5, 50);30 g.setFont(messageFont);31 g.setColor(color2);32 g.drawString(message, 5, 100);33 g.setFont(messageFont);34 g.setColor(color3);35 g.drawString(message, 5, 150);36 37 范例6:文件Ex1_5_2.java的功能是解释Color类的类常

15、量。 01 import java.awt.*;02 import java.awt.event.*;03 import java.awt.Graphics;04 import java.awt.Font;05 import java.awt.Color;06 public class Ex1_5_2 extends Frame implements Runnable 07 Font messageFont;08 String message;09 public static void main(String args) 10 Ex1_5_2 workStart=new Ex1_5_2();1

16、1 12 public Ex1_5_2() 13 super(Ex1_5_2);14 setSize(350, 350);15 setVisible(true);16 new Thread(this).start();17 范例6 续18 public void run() 19 messageFont = new Font(TimesRoman, Font.PLAIN, 30);20 message = This is a test string;21 repaint();22 23 public void paint(Graphics g) 24 g.setFont(messageFont

17、);25 g.setColor(Color.blue);26 g.drawString(message, 5, 50);27 28 范例6.1:文件Ex1_5_3.java的功能是解释Color类读取颜色值的实例方法,运行时必须配合新对象的实例才可使用。 01 import java.awt.*;02 import java.awt.event.*;03 import java.awt.Graphics;04 import java.awt.Font;05 public class Ex1_5_3 extends Frame implements Runnable 06 Font messag

18、eFont;07 String message;08 Color color;09 public static void main(String args) 10 Ex1_5_3 workStart=new Ex1_5_3();11 范例6.1 续112 public Ex1_5_3() 13 super(Ex1_5_3);14 setSize(350, 350);15 setVisible(true);16 new Thread(this).start();17 18 public void run() 19 color = new Color(212, 255, 0);20 message

19、Font = new Font(TimesRoman, Font.PLAIN, 20);21 message = This is a test string; 范例6.1 续222 System.out.println(getRed() : + color.getRed();23 System.out.println(getGreen() : + color.getGreen();24 System.out.println(getBlue() : + color.getBlue();25 System.out.println(getRGB() : + color.getRGB();26 rep

20、aint();27 28 public void paint(Graphics g) 29 g.setFont(messageFont);30 g.setColor(color);31 g.drawString(message, 5, 50);32 33 1-6 中文处理 在1-4节已经介绍了Font类的功能,其生成的对象可定义字体的格式,构造函数参数name为字体名称,如Batang、Times New Roman楷体等;参数style为字体模式,如BOLD(加粗)、ITALIC(斜体)、PLAIN(标准);参数size为字号,如10、12等。范例7:文件Ex1_6_1.java的功能是解释

21、中文字体的绘制。01 import java.awt.*;02 import java.awt.event.*;03 import java.awt.Graphics;04 import java.awt.Font;05 import java.awt.Color;06 public class Ex1_6_1 extends Frame implements Runnable 07 Font messageFont1;08 Font messageFont2;09 String message;10 public static void main(String args) 11 Ex1_6_

22、1 workStart=new Ex1_6_1();12 范例7 续113 public Ex1_6_1() 14 super(Ex1_6_1);15 setSize(350, 350);16 setVisible(true);17 new Thread(this).start();18 19 public void run() 20 messageFont1 = new Font(宋体, Font.PLAIN, 30);21 messageFont2 = new Font(楷体, Font.PLAIN, 30);22 message = 中文字符串;23 repaint();24 范例7 续

23、225 public void paint(Graphics g) 26 g.setFont(messageFont1);27 g.setColor(Color.blue);28 g.drawString(message, 5, 50);29 g.setFont(messageFont2);30 g.setColor(Color.green);31 g.drawString(message, 5, 100);32 33 范例8:文件Ex1_6_2.java的功能是解释同时设置中文/英文的字体名称或两种字体模式。 01 import java.awt.*;02 import java.awt.e

24、vent.*;03 import java.awt.Graphics;04 import java.awt.Font;05 import java.awt.Color;06 public class Ex1_6_2 extends Frame implements Runnable 07 Font messageFont1, messageFont2, messageFont3, messageFont4;08 String message;09 public static void main(String args) 10 Ex1_6_2 workStart=new Ex1_6_2();11 12 public Ex1_6_2() 13 super(Ex1_6_2);14 setSize(350, 350);范例8 续115 setVisible(true);16 new Thread(this).start();17 18 public void run() 19 messageFont1 = new Font(宋体+TimesRoman, Font.PLAIN, 30);20 messageFont2 = new Font(宋体+Monotype Corsiva, Font.PLAIN, 30);21 mes

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论