作者devilarise (Devil)
看板Flash
标题Re: [问题] AS2 我想请问有关滑鼠动作侦测的问题
时间Sat Dec 19 17:22:46 2009
我开始学的时候已经是AS3了
虽然AS2也有回头看一点点
但这里我只说大概的观念
无论用哪种语言写
观念应该都不会差太多的
※ 引述《blackdog630 (欧告)》之铭言:
: 我最近要做一个小游戏
: 大意就是
: 有一个东西会追着滑鼠跑
: 然後滑鼠要动来动去不要被他抓到
: 万一真的不小心被抓到了
: 只要在十秒内快速的左右晃动十下以上
: 就可以逃开
: 没有的话就失败
: 超过十秒也是失败
: (这时候的滑鼠没办法移动)
: (只可以左右晃动)
: 可是问题来了
: 我要怎麽样知道说
: 滑鼠在十秒内有左右晃动十下以上
如第一个在推文回答的朋友所说
所谓的左右晃动,通常就是这样抓X轴的变化
而这里你还提到,你希望滑鼠游标被抓到时
滑鼠需要失去正常的控制权
这里我提个可能可以的做法给你参考看看
这是我以前在写DirectX游戏时的做法
首先,我将系统提供滑鼠游标隐藏起来
滑鼠,我只抓取他的XY座标资讯
然後游标我改用另外的小贴图,让这个贴图随着滑鼠游标跑
这样就可以做到”看起来”还是有滑鼠游标在运作的假象
然後,当你希望滑鼠游标”看起来”失去控制时
就解除滑鼠游标对滑鼠的XY资讯的参考
改用其他方式来改变当时的图片座标值
接着就是当滑鼠被你说的物件抓到时
因为从头到尾真实的滑鼠都是隐形状态的
所以在这个时候,游标假图片就用程式去做出晃动的感觉
或者甚至换个提示玩家要摇动滑鼠的图片也可以
这样玩家就不会感觉滑鼠不见了,而你还是可以正常抓到滑鼠的XY值
也就可以测得有没有左右摇晃10次了
还有就是,你可以把问题想得再简单一点点
不要想摇晃10次,先想想摇晃一次是什麽情形?
举个例子来说:
今天当滑鼠被物件抓到的瞬间,你可以把当时的X值存起来
然後开始去抓MouseMove事件时的滑鼠座标值
接着只要事件中抓到的X值,比存起来的X大,比存起来的X小
各发生了一次,就可以算是左右摇晃一次了@@
方法可能不是最好的@@
仅供参考
如果有其他前辈提供更先进的方法
请省掉我的做法@@
我还算是个新丁 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.133.240
1F:推 blackdog630:我会再回去研究看看的 感恩罗 12/21 04:20