[教程]FLASH游戏专题(一)——如何制作游戏之“检测鼠标、键盘”
发布:小优 | 发布时间: 2004年10月28日以下内容参考《FLASH MX游戏制作精粹》一书/编著:郭亮/海洋出版社
FLASH游戏专题(一)——如何制作游戏之“检测鼠标、键盘”
学习目的:
掌握鼠标键盘控制,拖动物体、检测碰撞、复制物体、角度、定时器、声音控制、加载等,是游戏制作必须具备的方法技巧。
一、检测鼠标、键盘
对于根舞台来说,用_xmouse和_ymouse动作来检测鼠标的位置,它是按照舞台左上角的坐标为原点(即0坐标点)坐标进行测量的。同样的,影片剪辑中也可以用_xmouse和_ymouse方法来检测鼠标,但鼠标的位置是以影片剪辑的中心点为原点来测量的。
用下面的例子可以检测它们的不同。
影片剪辑“box”(中心点)位于舞台坐标(100,100),box实例的AS:
从上面的代码中可以看到,用四个根时间线上的变量,来存储舞台的鼠标和影片实例自身内部的鼠标x,y轴坐标位置。并用影片剪辑的enterFrame时间来产生一个不断循环的过程,用以对这4个值进行实时的检测。
可以看到舞台鼠标位置和"box"实例的坐标位置正好相差了100。这正是"box"影片剪辑实例相对于舞台原点的距离。由此显示了它们之间的关系。
修改一下上面的代码,可以检测鼠标是否超出了舞台范围:
这是按照舞台大小为550*400作为判断依据的,按Ctrl+Enter键来测试影片,当鼠标移动到这个边界外面时,Output窗口会弹出显示。不过,发布影片的时候,作为调试的Output窗口并不会弹出。
二、检测键盘
1、用按钮检测键盘。
步骤.
----创建按钮
----AS:
用按钮的keyPress事件来检测键盘,是唯一不用进行任何代码检测的方法,相当的方便.但是由于只是检测到键盘被按下时的状态,且不能进行混合键的检测,控制不太灵活,在制作较复杂游戏的时候一般不会采用.
2.影片剪辑检测键盘
在影片剪辑的驱动事件中,有keyDown和keyUp事件,也就是影片剪辑能检测到键盘键被按下时和释放时两个状态,看下面的简单的例子:
----创建叫"onemc"的影片剪辑
----AS:
上式同时运用了keyDown和keyUp事件来检测键盘.
--------------------------
(1) 运用Key对象
问题是按下键盘中的所有键都会产生上面的反应,因此,需要用内置对象Key对象的方法来检测用户上次按下的是什么键.Key对象不需要使用new关键字来产生,要使用它,只需调用该对象自身即可.Key对象有两种方法来获取按键:
要获得上次所按键的虚拟键控代码,可使用getCode方法.
要获得上次所按键的ASCII值,可使用getAscii方法.
键盘上的每个实际的键都有一个虚拟键控代码.例如向左箭头键的虚拟键控代码是37.通过使用虚拟键控代码,可以确保影片的控制在每个键盘上都相同,而不用考虑语言或平台.如下:
Key对象还有众多的属性,它们全部都是和虚拟键控代码关联的常量.如空格键虚拟键控代码为32=Key.SPACE.于是:
Key对象的 isDown方法:
格式: isDown(keycode)
在按下keycode中指定的键时,此方法返回true.
如:
只是不同的是:此方法检测的是键盘是否被按下的动作,所以并不能用keyUp的事件来消除它,而用"Key.getCode() == 键控代码值"是可以
用keyUp的事件的.
但是isDown有它的优点:
上式通过enterFrame方法对键盘进行循环监测,一旦Shift和空格键被同时按下时,执行脚本,这就提供了一个检测组合键的方法.
发布:小优 | 分类:Flash | 评论:0 | 引用:0 | 浏览:
| TrackBack引用地址
- 相关文章:
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





