1

マウスとの衝突判定を利用したゲームを作っています。

マウスがオブジェクトと衝突するとき、プレーヤーはカスタムマウスカーソルであり、マウスは座標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
     }

}
4

2 に答える 2

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 でのWPFでのMousepositionの設定

Linuxでの方法(これは2.6までのAIRサポートしかありませんが) X11(Linuxデスクトップ)でマウスの位置を設定するにはどうすればよいですか?

したがって、これらのソリューションの両方を実装し、AIRアプリとしてパッケージ化する場合は、これを機能させることができますが、それ以外の場合は不可能であると確信しています。

于 2012-08-08T02:06:23.090 に答える
1

もう一度続行するにはクリックする必要がある 0, 0 座標にボタンを作成します。次に、ユーザーは、カスタム カーソルでマウスを追跡し続けることができる場所にマウスを移動する必要があります。

于 2012-08-08T03:09:51.613 に答える