float[] elements = {0.0f, -1.0f, 0.0f,-1.0f, 4.f, -1.0f,0.0f, -1.0f, 0.0f};
Image img = Toolkit.getDefaultToolkit().getImage(“boat.gif”); int w = img.getWidth(this); int h = img.getHeight(this); BufferedImage bi = new
BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics2D big = bi.createGraphics(); big.drawImage(img,0,0,this); BufferedImageOp biop = null;
AffineTransform at = new AffineTransform(); BufferedImage bimg = new
BufferedImage(img.getWidth(this),img.getHeight(this),
BufferedImage.TYPE_INT_RGB);
Kernel kernel = new Kernel(3,3,elements); ConvolveOp cop = new
ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);
cop.filter(bi,bimg); biop =
newAffineTransformOp(at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
g2 = (Graphics2D)this.getGraphics(); g2.drawImage(bimg,biop,0,0);
23
3.6 Java网络技术的应用
Java最初是作为一种网络编程语言出现的,它能够使用网络上的各种资源和数据,与服务器建立各种传输通道,将自己的数据传送到网络的各个地方。你可以用Java很轻松地完成这些,因为Java类库提供了很强大的网络功能。
Java中有关网络方面的功能都定义在Java.net程序包中。Java所提供的网络功能可大致分为三大类:
1)URL和URLConnection这是三大类功能中最高级的一种。通过URL的网络资源表达方式,很容易确定网络上数据的位置。利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端。 2)Socket所谓Socket,可以想像成两个不同的程序通过网络的通道,而这是传统网络程序中最常用的方法。一般在TCP/IP网络协议下的客户服务器软件采用Socket作为交互的方式。
3)Datagram是这些功能中最低级的一种。其他网络数据传送方式,都假想在程序执行时,建立一条安全稳定的通道。但是以Datagram的方式传送数据时,只是把数据的目的地记录在数据包中,然后就直接放在网络上进行传输,系统不保证数据一定能够安全送到,也不能确定什么时候可以送到。也就是说,Datagram不能保证传送质量。
实例6[8]:
某游戏中利用Sockt类进行联机的过程 import Java.net.*; import Java.io.*;
public class SocketConnect {
public static void main(String args[]) { try {
String data, host; int port = 80; // HTTP服务器预设连接站 PrintStream theOutputStream;
24
host = args[0];
Socket skt = new Socket(host, port);
theOutputStream = new PrintStream(skt.getOutputStream()); // 发出HTTP指令,此指令可取得首页数据 theOutputStream.println(“GET /”);
BufferedReader(new InputStreamReader(skt.getInputStream())); // 取得联机资料 while((data = buf.readLine()) != null) System.out.println(data); skt.close(); // 关闭Socket }
catch (UnknownHostException e) { // 无法解析地址 System.out.println(e.getMessage()); }
catch (ArrayIndexOutOfBoundsException e) { System.out.println(“没有指定地址”); }
catch (IOException e) {
System.out.println(e.getMessage()); } }
25
3.7 人工智能
人工智能(Artificial Intelligence) ,英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。“人工智能”一词最初是在1956年Dartmouth学会上提出的。从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。例如繁重的科学和工程计算本来是要人脑来承担的,现在计算机不但能完成这种计算, 而且能够比人脑做得更快、更准确,因之当代人已不再把这种计算看作是“需要人类智能才能完成的复杂任务”, 可见复杂工作的定义是随着时代的发展和技术的进步而变化的, 人工智能这门科学的具体目标也自然随着时代的变化而发展。它一方面不断获得新的进展,一方面又转向更有意义、更加困难的目标。目前能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器就是计算机, 人工智能的发展历史是和计算机科学与技术的发展史联系在一起的。除了计算机科学以外, 人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。人工智能学科研究的主要内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。
26
4 总结与展望
本文介绍了大量的在游戏开发中的各种Java技术,有的是基于PC的,有的是基于移动设备,并对每种技术都举了相关的游戏实例进行分析。通过此次论文设计,我受益匪浅,不仅体会到了Java技术的广范与强大,而且使我学习到了许多课堂上学习不到的东西,也深入的了解了J2ME开发的各种技术。
相信随着移动电子设备的迅速发展,以及Java技术的快速更新,在未来的时间了,Java技术会多的应用到游戏与其他开发中。随着移动设备的性能的日益提升,过去简单的游戏应用已经不能满足用户的要求,这就要求我们不断学习新的技术,利用硬件上的提升,开发出更加逼真与复杂的游戏应用。
而随着其他移动设备开发技术的提高,很多新的技术加紧了追赶Java的脚步,Java比以往有更加沉重的负担,希望在未来的时间里,Java能不断给我们带来新的东西。
在本论文的写作过程中,不断的出现一些新的问题,我又不断的解决遇到的问题,一步一步地前进。虽然J2ME不是我主学的方向,但随着论文的逐步完善,我对以前所学知识的领悟程度得到了提升,也让我了解了许多J2ME方面的知识。由于本人水平有限,各种技术只是浅尝辄止,并未深入研究。文章难免有错误的地方,望请谅解
27
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库万鹏 2005911037 java技术在游戏开发的应用(6)在线全文阅读。
相关推荐: