快速业务通道

Java游戏编程初步 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
用户如果在松开鼠标之前移动鼠标,点击不会导致鼠标相应事件出现.

· 因为点击鼠标是按下鼠标和松开鼠标的结合, 在事件分配给 mouseClicked() 方法之前, mousePressed() 和 mouseReleased() 方法已同时被调用.

鼠标状态处理:

mouseEntered() 当鼠标离开当前组件并进入你所监听的组件时激活事件.

mouseExited() 当鼠标离开你所监听的组件时发生.

Mouse 移动事件

鼠标移动主要通过接口MouseMotionListener来实现:

mouseDragged() 当用户按下鼠标按钮并在松开之前进行移动时发生.在mouseDragged() 后松开鼠标不会导致mouseClicked().

mouseMoved() 当鼠标在组件上移动而 不时拖动时发生.

依据我们的游戏设计,我们在这要使用到MouseListener接口。实现接口后。我们要在init()函数加入监听器addMouseLisener(),来监听对applet的响应事件。

知道了鼠标事件的处理,我们再来回顾一下上面提到的球反弹设计,现在我们要如何处理了球的控制呢?让我们想一想,不错,可能你已经发现了,我们照样可通过改变speed方向来实现回弹控制操作。在mousePressed(){}事件中加入下面的代码,我们的回弹控制就设计完成。

speed = -4

记得在释放applet资源时,我们要释放mouseListener资源。在destory()中加入

removeMouseListener(this);

可能有些朋友会使用mouseDown()方法,mouseDown()在此我建议大家不要再使用这个方法了,它已经是被淘汰的产品。是为了兼容JDK1.0而带到JDK1.4中来的。

键盘监听技术

知道了鼠标的操作处理,键盘的操作处理就很简单了。我们只要实现keyListener接口,并在相应的事件中加入我们要实现的代码。

KeyPressed: 当按键时发生

KeyReleased:当翻译键时发生

KeyTyped:当打击键时发生

由于在后面我们设计的游戏中我们不会使用到键盘操作,键盘事件处理我们就交给大家自己去实现。

现在我们来回顾一下我们能做什么了?移动一个物体,加载声音和图片,用鼠标对游戏进行一定的控制。哦,我的天,我们已经可以做自己的很简单的游戏了。是的,你可以了,我认为在此,大家可以放下教程,把自己小时候一直想玩的游戏,把自己学程序时一直想做的游戏自己进行设计实现,这对你的帮助将是非常大的。对你的编程水平也是一个很大的提高。

当然如果你仍然认为自己认识还不是很深,下面让我们来设计一个完整的游戏。这将是一个很有意思的过程。

Java游戏编程初步(8)

时间:2011-01-24

第一个游戏-"保卫者"

主线思路:

真正做自己的游戏是总是很兴奋。在开始任何事情之前,我们都要有个好的设计,游戏更不例外。下面我们就以上面的例子为本。设计一个”保卫者”的游戏。游戏思路本身很简单,从屏幕的顶端不断的有炸弹落下来,而我们这些”保卫者” 要在它们着地之前,用鼠标点击让它反弹回去,不让它落到地面上来,但是球在上升过程中我们也要注意不让它撞到顶上。如果撞到顶上或地画,你的生命点数都会减少。每点中一个炸弹你的分数就会增加。当你的生命点数为零。”Game Over”。

设计结构:

1.模块设计:

游戏的结构很简单,由三个模块组成。

Denfen类:Denfen类控制整个游戏主线程,初始化炸弹类,并绘制屏幕上的炸弹数量及处理炸弹的移动,并监听鼠标事件

Bomb类:主要是判断炸弹的速度,方向,是否撞到地面和点击事件

Denfense类:主要用来处理游戏者的记分和生命点数

2.方法实现:

Denfen:

init(): 初始化所有对象,包括声音文件的加载,Bomb类的生成

run(): 处理炸弹的下降运动

paint(...):绘制炸弹及相关的数据记录显示

update(...): 实现屏幕图像的双缓冲,消除闪烁

mouseProcess (...): 利用mouseEvent事件监听来处理鼠标按下事件,并根据鼠标当时的x坐标和y坐标判断

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号