没有合适的资源?快使用搜索试试~ 我知道了~
现在流行的游戏似乎都是用c或c++来开发的。在java平台上几乎没有很大型及可玩的流行游戏。由于java是个新生语言,他的许多特性还有待大家的发掘,但是我们不能否认java在游戏编程方面的强大性。本文将带领大家一步一步学习编写java游戏。最终打造属于自己的java游戏。
资源推荐
资源详情
资源评论
现在流行的游戏似乎都是用 c 或 c++来开发的。在 java 平台上几乎没有很大型及可玩的流
行游戏。由于 java 是个新生语言,他的许多特性还有待大家的发掘,但是我们不能否认 java
在游戏编程方面的强大性。本文将带领大家一步一步学习编写 java 游戏。最终打造属于自
己的 java 游戏。
在开始之前我们得确认你已经安装了 java jdk,并已经安装了浏览器软件如 ie。本章是
以 internet 为开发对象,一步一步教大家认识 java 的 thread、applets….以及游戏编程要注
意的一些方方面面并在每一小部分附上了相应的源代码以供大家参考,最后我们还会对我
们的游戏程序进行指导性的提示。在文章中我们还穿插了很多建设性的问题,让读者参与
到我们的开发中来。但是由于本章指在带领大家进入这个门槛,大部分知识并不会很详细
说明,有兴趣的读者可查阅相关的资料补充。在开始之前我们还得确认你已经知道类,继
承和 java 语言的一些基本属性了。
基本 applet
applets 是一种 web 浏览器上的小程序,由于 applet 对系统而言绝对安全,所以它做
的事比 aaplication 有限,但是对于客户端的程序,applets 仍然是个很强大的工具。为了
浏览和运行方便,我们就以 applet 为开发对象。
开发 applets 程序,我们得继承 applet 类,并覆写必要的函数,下面几个函数控制了
web 页面上的 applet 生成与执行。
函数 作用
init() 这个函数会被自动调用,执行 applet 的初始化动作—包括组件在版面上的分配,你一
定得覆写它
start() 每当浏览器显示 applet 内容时,都会调用它,让 applet 开启其正规工作(尤其是那
些被 stop()关闭的工作),调用 init()之后也会调用这个函数
stop() 每当浏览器不显示内容时,都会调用它。让 applet 关闭某些耗资源的工作,调用
destory()之后也会调用这个函数
destroy() 浏览器将 applet 自网页移除之际,便会调用它,以执行”applet 不再被使用”应该
做的最后释放资源等动作
paint() 让你在 applet 界面上进行相应的绘画动作,每次刷新时都会重画
所有的 applet 文件源文件名和 java 应用程序一样都是.java 为扩展名,编译后的执行
文件扩展名为.class,由于在 applet 中已经没有了 main()函数,它是和 html 自动集成,所
以我们要执行 applet,要在 html 源文件中放入一特定的标签(tag),才能告诉网页如何
装载并执行这个 applet,这里有一点要注意,我们执行的网页必须能执行 java 程序。
普通 html 源码格式
<html>
<applet code="helloworld.class" width=300 height=500>
</applet>
</html
<applet code ="helloworld.class" width=300 height=500>这行即 applet 的执行处。
applet 执行文档为 ="helloworld.class" 告诉网页”applet ”扩展文件为 helloworld.class
width 和 height 告诉浏览器这个显示的 applet 的大小
有关标签(tag)的说明,大家可在网上找到很多相关的说明文档。
线程
由于 apllet,java 应用程序的执行都和线程有关。我们来大概了解一下线程的概念。
线程也称为轻型进程 (lwp)。每个线程只能在单个进程的作用域内活动、协作和数据交
换,并且在计算资源方面非常廉价。线程需要操作系统的支持,因此不是所有的机器都提
供线程。java 编程语言,作为相当新的一种语言,已将线程支持与语言本身合为一体,这
样就对线程提供了强健的支持。
thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,
程序员必须创建一个从 thread 类导出的新类。程序员必须覆盖 thread 的 run() 函数来完成
有用的工作。用户并不直接调用此函数;而是必须调用 thread 的 start() 函数,该函数再调
用 run()。
但是使用 thread 类实现线程,增加了程序的类层次,所以一般程序员都由另一个 java
线程接口 runnable 接口来实现,runnable 接口只有一个函数 run(),此函数必须由实现了
此接口的类实现。
线程中有几个重要的方法是我们得了解:
thread.start(): 启动一个线程
thread.stop(): 停止一个线程
thread.sleep(time in milliseconds): 暂停线程在一个等待时间内。
动画技术
自由降落动画
了解了一些基本概念后,下面我们就开始我们的实质性的工作。我们设计一个球从屏
幕顶上降落到屏幕下面,程序实现比较简单,但是这是游戏动画中不可少的一部分。在开
始之前我们来看看我们的 applet 开始语句。
import java.awt.*;
import java.applet.*;
public class ball
extends applet implements runnable
{
public void init() { }
public void start() { }
public void stop() { }
public void destroy() { }
public void run () { }
public void paint (graphics g) { }
}
在开始函数中我们要新建程序的主线程,并启动这个线程。一旦做好这些准备工作以
后,当 applet 第一次被显示时,就会创建线程对象的一个实例,并把 this 对象作为建构方
法的参数,之后就可以启动动画了
public void start ()
{
// 定义一个新的线程
thread th = new thread (this);
// 启动线程
th.start ();
}
现在我们来看看线程的 run 方法,它在循环 while(),中每隔 20 毫秒重画动画场景。
sleep 这个方法很重要,如果在 run 循环中没有这部分,圆的重画动作将执行得很快,其他
方法将得不到有效执行,也即我们在屏幕上将看不到球的显示。
public void run ()
{
//
while (true)
{
// 重画 applet 画面
repaint();
try
{
// 暂停线程 20 毫秒
thread.sleep (20);
}
catch (interruptedexception ex)
{
}
}
}
我们接着读下去之前,有几个问题需要回答。你也许会问,浏览器调用 java 小程序的
start 和 stop 方法吗? run 方法是如何被调用的? 情况是这样的,当浏览器启动了一个内部
线程时,就相应地启动了 applet 的运行。当网页显示时,就启动了 applet 的 start 方法。
start 方法创建一个线程对象,并把 applet 自身传送给线程,以实现 run 方法。
此时,两个线程在运行:由浏览器启动的初始线程,以及处理动画的线程。快速查看
剩余15页未读,继续阅读
资源评论
myxjxj
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python部署fastsam的tensorrt模型源码.zip
- 【JavaScript】基于JSP的酒店客房管理系统源【源码+lw+部署文档+讲解】
- 综合电路设计-8赛道多功能运动秒表(vivado实现代码)
- java学习心得4000字.doc
- CarControl.pcf
- opencv-基于c++实现的opencv图像处理算法之gamma校正.zip
- java实习周记25篇.doc
- MI4450-VB一款SOP8封装N-Channel场效应MOS管
- opencv-基于c++实现的opencv图像处理算法之灰度变换算法.zip
- 实现用于Landmark检测+Robot跟踪的SLAM定位导航算法源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功