AS3碰撞检测鼠标移动

时间:2012-08-08 02:03:03

标签: actionscript-3 flash collision-detection

我正在制作一款使用鼠标进行碰撞检测的游戏。

当鼠标与对象匹配时,播放器是自定义鼠标光标,鼠标移动到坐标X0,Y0。我用来实现这个的代码如下。但是,当鼠标移动时鼠标移动到X0,Y0时,它会在碰撞发生的地方开始,而不是从屏幕顶部移动。

import flash.events.Event;

var cursor:MovieClip;

function initializeMovie ():void {

cursor = new Cursor();
addChild (cursor);
cursor.enabled = false;
Mouse.hide ();
stage.addEventListener (MouseEvent.MOUSE_MOVE, dragCursor);
}

function dragCursor (event:MouseEvent):void{

cursor.x = this.mouseX;
cursor.y = this.mouseY;
}

initializeMovie ();

this.addEventListener( Event.ENTER_FRAME, handleCollision)

function handleCollision( e:Event ):void{

if(cursor.hitTestObject( wall )){
cursor.x = 0
cursor.y = 0
     }

}

2 个答案:

答案 0 :(得分:1)

当您重置光标对象的位置时,您没有移动实际的鼠标位置,我不相信您可以实际执行您正在尝试的操作(即写入鼠标位置以移动用户光标,我相信这需要系统特定的代码,比如C#或者我相信Mac上的Objective C和Cocoa或Carbon。)

http://www.kirupa.com/forum/showthread.php?354641-Possible-to-set-mouse-position-in-flash

这显然是你在Mac上做的一种方式 https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html#//apple_ref/c/func/CGWarpMouseCursorPosition

在Windows上的一种方式 Set Mouseposition in WPF

Linux上的一种方式(虽然这只有AIR支持高达2.6) How to set the mouse position under X11 (linux desktop)?

因此,如果您实施了这两个解决方案并打包为AIR应用程序,那么您可以将其工作,但我确信这是不可能的。

答案 1 :(得分:1)

在0,0坐标处创建一个按钮,单击该按钮需要再次继续。然后,您的用户必须将鼠标移动到您可以继续使用自定义光标跟踪鼠标的位置。