2011-10-27 13 views
1

私はas3のパズルゲームを作成しています。私はすでに完了しています。 私はビットマップを8つの部分に分割し、それらをmcのものに変換し、マウスでそれらを動かすことができました。ゲームソリューションActionScript 3

私はパズルピースをドロップしたところでパズルボードを作った。 今、どのようにパズルの解を作ることができますか?パズルのピースが正しい順序になっているときのように、ビットマップ全体が表示されます。

あなたのご注意をお寄せください

+0

私はideeaを持っているが、私はコードでそれを置く方法を知らない: 私は数すべてのMCに、すべてのグリッド部分に割り当てることができます。ですから、mc.1がgridpart.1上にあれば、mcを非表示にして、全体のビットマップをステージに追加します。 誰かがideeaを持っていますどうすればas3でこれを作ることができますか? ありがとうございました 私の悪い英語についてはごめんなさい – CMS

+0

誰も私をここで助けることができますか? – CMS

答えて

1

ポイントの配列にmcsの位置を保存しないのはなぜですか?

この方法では、ボード上のマスがどこにあっても、それらをトゥイーンして元の位置に戻すのは簡単です。

var positions:Array = [ new Point(mc1.x , mc1.y), .... , new Point(mcn.x , mc1.n), ]; 

//assuming that this code is run from 
// the mcs container and that this container 
// doesn't have any other children 
for(var i:int ; i < this.numChildren ; ++i) 
{ 
    //provided that the MCs are on 
    //the right order in the Display List 
    var mc:MovieClip = this.getChildAt(i) as MovieClip; 

    //no tween here but you get the idea... 
    mc.x = positions[i].x; 
    mc.y = positions[i].y; 
} 

ビットマップを分割してムービークリップに変換した後、その段階でパズルの解決策があるとします。

はいの場合は、移動する前に現在の位置を保存する必要があります。

実際には、実際にポジションを保存する前にイベントリスナーを追加しないことを意味します。

//instantiate the Array 
var positions:Array = []; 
for(var i:int ; i < this.numChildren; ++i) 
{ 
    // add the mcs positions 
    var positions[i] = new Point (this.getChildAt(i).x , this.getChildAt(i).y); 

    //you could add your Mouse Event listener here... 
} 
+0

私はそれを試みますが、私はAS3の初心者ですので、私はそれを作る方法を知らない – CMS

+0

どのようにゲームの解決策を作ることができますか?パズルピースが正しい順序であることを意味します。画像が表示されるはずです – CMS

+0

これはあなたの質問に答えていない場合、あなたが知っているか分からないことについてより具体的にする必要があります編集された答えを確認してください... – PatrickS