Java游戏编程初步 - 编程入门网
用户如果在松开鼠标之前移动鼠标,点击不会导致鼠标相应事件出现.
· 因为点击鼠标是按下鼠标和松开鼠标的结合, 在事件分配给 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |