Actionscript 3 AS3碰撞检测鼠标移动
我正在做一个游戏,使用鼠标碰撞检测 当鼠标与对象碰撞时,播放器是一个自定义鼠标光标。鼠标移动到坐标X0,Y0。下面是我用来实现这一点的代码。但是,当鼠标在碰撞后移动到X0、Y0时,当鼠标移动时,它会从碰撞发生的位置开始,而不是从屏幕顶部移动Actionscript 3 AS3碰撞检测鼠标移动,actionscript-3,flash,collision-detection,Actionscript 3,Flash,Collision Detection,我正在做一个游戏,使用鼠标碰撞检测 当鼠标与对象碰撞时,播放器是一个自定义鼠标光标。鼠标移动到坐标X0,Y0。下面是我用来实现这一点的代码。但是,当鼠标在碰撞后移动到X0、Y0时,当鼠标移动时,它会从碰撞发生的位置开始,而不是从屏幕顶部移动 import flash.events.Event; var cursor:MovieClip; function initializeMovie ():void { cursor = new Cursor(); addChild (cursor);
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
}
}
当你重置光标对象的位置时,你没有移动实际的鼠标位置,我不相信你能真正做到你想做的(即写入鼠标位置以移动用户光标,我相信这需要系统特定的代码,比如C#或者我相信Mac端的Objective C和Cocoa或Carbon) 这是一种在Mac上实现的方法 还有一条在窗户上的路 Linux上的一种方式(尽管它只支持高达2.6的AIR)
因此,如果您同时实现了这两种解决方案,并将其打包为AIR应用程序,您可以实现这一点,但我非常确定这是不可能的。在0,0坐标处创建一个按钮,需要单击该按钮才能再次继续。然后,用户必须将鼠标移动到可以让自定义光标继续跟踪鼠标的位置。因此,解决问题的最佳方法是,不移动鼠标,而是让用户在某个特定像素处“抓取”一个正方形,并四处移动,然后将此对象位置重置为(0,0)