Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3碰撞检测鼠标移动_Actionscript 3_Flash_Collision Detection - Fatal编程技术网

Actionscript 3 AS3碰撞检测鼠标移动

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);

我正在做一个游戏,使用鼠标碰撞检测

当鼠标与对象碰撞时,播放器是一个自定义鼠标光标。鼠标移动到坐标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
     }

}

当你重置光标对象的位置时,你没有移动实际的鼠标位置,我不相信你能真正做到你想做的(即写入鼠标位置以移动用户光标,我相信这需要系统特定的代码,比如C#或者我相信Mac端的Objective C和Cocoa或Carbon)

这是一种在Mac上实现的方法

还有一条在窗户上的路

Linux上的一种方式(尽管它只支持高达2.6的AIR)


因此,如果您同时实现了这两种解决方案,并将其打包为AIR应用程序,您可以实现这一点,但我非常确定这是不可能的。

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

因此,解决问题的最佳方法是,不移动鼠标,而是让用户在某个特定像素处“抓取”一个正方形,并四处移动,然后将此对象位置重置为(0,0)