私はすべてが大丈夫ですが、私は次のようにカードのスタックを作成することはできませんよカードゲームを作成していますでソリティアスタックに似たカードのスタックを作成します。 Spadesの4,5,6,7のような配列では、優先順位の最も低いカードを上に置き、優先順位の高いカードを最初のカードの後ろに配置します。AS3
どのようにこれを達成できますか?
私はすべてが大丈夫ですが、私は次のようにカードのスタックを作成することはできませんよカードゲームを作成していますでソリティアスタックに似たカードのスタックを作成します。 Spadesの4,5,6,7のような配列では、優先順位の最も低いカードを上に置き、優先順位の高いカードを最初のカードの後ろに配置します。AS3
どのようにこれを達成できますか?
DisplayObjects(あなたのビジュアルカード)を作成する方法を知っているので、私の答えでは言及しません。
私はホルダースプライトを作成し、それにカードを追加して、カードの深さの順序を制御できるようにしました。 addChild(前のdisplayObjectを追加)またはaddChildAt(希望の位置にdisplayObjectを追加)のいずれかを使用して、スタックスプライトにカードを追加します。 addChildAtを使用し、インデックスとして0を使用すると、他のすべてのdisplayObjectsの下にそれを追加し、その1つのインデックスを押し上げます。すでにディスプレイリストにカードがある場合は、setChildIndexを使用してインデックスを変更できます。
var cardList : Array;
var cardStack : Sprite = new Sprite();
addChild(cardStack);
for(var i : int = 0 ; i < cardList.length ; i++)
{
// adds it at below all displayObject in "cardStack"
cardStack.addChildAt(cardList[i], 0);
// adds it on top of all displayObject in "cardStack"
cardStack.addChild(cardList[i]);
}
次に、あなたの問題がより具体的である必要があります。 – Mattias
最も簡単な方法は、は、addChildAt(...)を使用して、removeChildAt(...)を使用して、ステージからすべてのカードを削除し、(正しい順序で)再びそれらを追加することです。
Usignマティアス例:
var sortedCardArray:Array = [];
while (cardContainer.numChildren)
{
sortedCardArray.push(cardContainer.removeChildAt(0));
}
/*
/ This assumes that all the values of the cards
/ are numeric (2, 3, 4, 5, 6, 7, 8, 9, 10, Jack=11, Queen=12, King=13, Ace=14)
*/
sortedCardArray.sortOn("variableWithTheCardNumber", Array.NUMERIC | Array.DESCENDING);
var n:int = sortedCardArray.length;
for(var i:int = 0 ; i < n ; i++)
{
cardContainer.addChild(sortedCardArray[i]);
}
それは、仕分けについてですが、あなたがアルゴリズムをソートしたいですか? – rptwsthi
はすでに配列のソートを実装しています。今はステージ上にカードを配置する方法を知りたいだけです。 –
表示オブジェクト、文字列への参照にはどのような配列が含まれていますか?おそらく、あなたがしようとしていること、そしておそらくいくつかのコードに関する詳細情報を提供すれば、役に立つと思われる回答が得られるでしょうか? – shanethehat