0

グリッドを色付きのタイルで覆う単純なゲームを作成するのに苦労しています。配列を使用してドラッグ アンド ドロップ機能を確立しましたが、それらをグリッド上の位置に簡単にスナップさせる方法が見つかりません。グリッド上の位置を、snapA1 から snapJ10 までの名前のムービー クリップにしました。すべて 10 文字ずつのグループで、一致するインスタンス名が付けられていますが、これらのクリップは移動する必要がないため、配列から削除されています。私が抱え続けている問題は、私が使用する機能は、単一の場所へのスナップを許可するためにしか機能しないということです. 基本的に、2 つ以上のオブジェクトのグループが互いにスナップできるようにする簡単な方法を探しているだけです。できればコードを力ずくで実行する必要はありません。冗談ではありませんが、同じコードの 20,000 インスタンスです。以下は、これまでのところスナップターゲットの場所を1つだけ許可するコードです

import flash.events.Event;
import flash.events.MouseEvent;

var greenArr:Array = new Array 
(greenTablet1, greenTablet2, greenTablet3, greenTablet4, greenTablet5,
greenTablet6, greenTablet7, greenTablet8, greenTablet9, greenTablet10,
greenTablet11, greenTablet12, greenTablet13, greenTablet14, greenTablet15, 
greenTablet16, greenTablet17, greenTablet18, greenTablet19, greenTablet20);


for (var i1:uint =0; i1 < greenArr.length; i1++) {
 greenArr[i1].addEventListener(MouseEvent.MOUSE_DOWN, dragG);
 greenArr[i1].addEventListener(MouseEvent.MOUSE_UP, dropG);
}


function dragG(event:MouseEvent):void {
 event.currentTarget.startDrag();
}


function dropG(event:MouseEvent):void {
 event.currentTarget.stopDrag();
}




stage.addEventListener(MouseEvent.MOUSE_UP, stopMotionG1);

function stopMotionG1(evt:MouseEvent):void {
snapInPlaceG1();
}
function snapInPlaceG1():void {
if (snapA1.hitTestObject(greenTablet1)) {
greenTablet1.x = snapA1.x;
greenTablet1.y = snapA1.y;


}}
4

1 に答える 1