77范文网 - 专业文章范例文档资料分享平台

万鹏 2005911037 java技术在游戏开发的应用(3)

来源:网络收集 时间:2019-03-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

可并发执行的单位。C和C++采用单线程体系结构,而Java却提供了多线程支持。Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

8

3 Java技术在游戏开发中的应用

3.1 Applet中的绘图技术

Applet程序中所采用的AWT的绘图机制主要涉及三个方法:paint()方法、update()方法和repaint()方法,update()方法和paint()方法都有一个Graphics类参数。Graphics是画图的关键,它可以支持两种绘图:一种是基本的绘图,如:画线、矩形、圆等;另一种是画图象,主要用于动画制作。 要进行绘图,首先要找到一个Graphics类的对象。update()方法和paint()方法所传递的参数都是Graphics类的对象,因此主要是通过重载它们来进行绘图,这是在动画程序中经常使用的方法。我们还可以通过getGraphics()方法得到一个Graphics类的对象,这个对象和update()方法和paint()方法中所传递的对象一样,都是该成员所对应的Graphics类的对象。得到了Graphics类的对象,就可使用各种绘图方法。

Graphics中提供的图形绘制方法有:

paint( ) //进行绘图的具体操作,必须有程序员重写

update( ) //用于更新图形,先清除背景、前景,再调用paint() repaint( ) /*用于重绘图形,在组件外形发生变化,即大小改变或位置移动时,repaint( )方法立即被系统自动调用,而实际上repaint()方法是自动调用update()方法*/

下面的方法支持基本的绘图和画图像: void drawLine( ) void drawArc( ) void drawPolygon( ) void drawRect( ) void drawRoundRect( ) void fill3DRect( ) void fillOval( ) 实例1:

9

Applet的AWT绘制:

class ArcCanvas extends Canvas{ //类ArcCanvas int startAngle=0; int endAngle=45; boolean filled=false; Font font;

public void paint(Graphics g){

//paint方法,该方法的作用是在Canvas上画图 Rectangle r=getBounds(); int hlines=r.height/10; int vlines=r.width/10; g.setColor(Color.pink); for(int i=1;i<=hlines;i++) {

g.drawLine(0,i*10,r.width,i*10); }

for(int i=1;i<=vlines;i++) {

g.drawLine(i*10,0,i*10,r.height); }

g.setColor(Color.red); if(filled) {

g.fillArc(0,0,r.width-1,r.height-1,startAngle,endAngle); } else { g.drawArc(0,0,r.width-1,r.height-1,startAngle, endAngle); }

g.setColor(Color.black); g.setFont(font);

g.drawLine(0,r.height/2,r.width,r.height/2); g.drawLine(r.width/2,0,r.width/2,r.height); g.drawLine(0,,0,r.width,r.height);

10

g.drawLine(r.width,0,0,r.height); int sx=10;

int sy=r.height-28;

g.drawString(“S=”+startAngle,sx,sy); g.drawString(“E=”+ednAngle,sx,sy+14); }

public void redraw(boolean filled,int start,int end){ //重画方法 this.filled=filled; this.startAngle=start; this.endAngle=end;}

11

3.2 游戏开发中的交互

一个优秀的游戏必定是与玩家不断的沟通,给予玩家充分的操作时间,而游戏又必须快速地,正确的对玩家的动作作出反映,否则这样的游戏,不能称为一个好游戏。所以说,游戏开发中的交互与其他技术有着相同的地位,是一个游戏必备的核心。在Java游戏的开发中,往往使用事件处理器来进行设计。 1.事件:用户对程序的某一种功能性操作。

Java中的事件[3]主要有两种: 1)组件类事件

componentEvent、ContainerEvent、WindowEvent、FocusEvent、PaintEvent、MouseEvent共六大类,

它们均是当组件的状态发生变化时产生。 2)动作类事件

ActionEvent、TextEvent、AdjustmentEvent、ItemEvent共四类。 它们均对应用户的某一种功能性操作动作。

Java中的事件类都包含在JDK的Java.awt.event包中。 2.事件编程:

用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。 事件委托授权处理模型

JDK1.1以上版本实现了事件委托授权处理模型的机制。 1) 事件源:产出事件的组件。

2)监听器:对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类(它们可以分别放在不同的程序中)加以编程实现。

3) 事件处理机制:AWT组件自身不编程处理相应的事件,面是交由事件监听器(它可以是组件所在的容器类或另外的Java程序类,只要它们实现了相关的事件监听器接口即可)处理(事件授权处理模型)。

4)事件处理的包:Java.awt.event包,它提供AWT事件所需的类和接口 ActionEvent类对应ActionListener接口;

MouseEvent类对应MouseMotionListener接口和MouseListener接口;

12

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库万鹏 2005911037 java技术在游戏开发的应用(3)在线全文阅读。

万鹏 2005911037 java技术在游戏开发的应用(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/508500.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: