0

我目前正在对一个朋友和我自己设计的纸牌游戏进行数字化,但是我在一些基本的编码方面遇到了麻烦。到目前为止,我所拥有的是代码将填充一个“牌组”(数组)然后将其随机化,然后将 4 张四张牌放入一个“手”(数组)中,然后它当前将 4 个数组条目的动画剪辑加载到舞台上某些 co-纵坐标。

我想要做的,因为我很快就会在舞台上用完空间,所以为每种卡片类型设置了定义的位置(目前它们只是按照它们被绘制的顺序加载)

我正在努力让代码 1) 执行检查数组是否至少包含任何一张卡片,然后将所述卡片加载到舞台上的坐标中,然后填充一个动态文本框以显示其中有多少卡在手。

因此,我对大多数更简单的函数非常有信心,但没有创建 If 语句来检查数组中的某些卡片(对象),以及如何计算同一数组中有多少特定类型的重复对象。

这是我目前所拥有的,在此先感谢。

import flash.display.MovieClip;
stop();
//Create starting deck for player 1
var deck1 : Array = new Array(new attack(),new attack(),new attack(),new attack(),new attack(),new attack(),new ashe1(),new ashe1(),new flashss(),new ignitess());

//Create empty hand for player 1 and set up display variables
var hand1 : Array = [];
var attack1
var sa1
var sa2
var sa3
var sau
var ss1
var ss2

//Check player 1's deck
trace(deck1);

//Shuffle player 1's deck
function randomize1 (a : *, b : * ) : int {
    return ( Math.random() >.5 ) ? 1 : -1;
}
trace(deck1.sort( randomize1 ) );

//Draw first four cards for player 1
var drawcard1:MovieClip = deck1.shift();
trace(deck1);
trace(drawcard1);
hand1.push(drawcard1);
trace(hand1);
drawcard1 = deck1.shift();
trace(deck1);
trace(drawcard1);
hand1.push(drawcard1);
trace(hand1);
drawcard1 = deck1.shift();
trace(deck1);
trace(drawcard1);
hand1.push(drawcard1);
trace(hand1);
drawcard1 = deck1.shift();
trace(deck1);
trace(drawcard1);
hand1.push(drawcard1);
trace(hand1);

//Show player 1's hand on screen
addChild(hand1[0]);
hand1[0].x = 0.00;
hand1[0].y = 600.00;
addChild(hand1[1]);
hand1[1].x = 186.85;
hand1[1].y = 600.00;
addChild(hand1[2]);
hand1[2].x = 373.70;
hand1[2].y = 600.00;
addChild(hand1[3]);
hand1[3].x = 560.55;
hand1[3].y = 600.00;

//Show remaining card count left in deck on screen
var deck1l = deck1.length ;
player1count.text = deck1l
4

1 回答 1

0

为卡片制作一个类,然后为每种卡片制作子类。

即,您将拥有Card包含卡片所有常见属性的类。那么你可能有CombatCard, ActionCard, PassiveCard, 等等。

在绘图时,您可以使用简单有效的方法将它们放置在舞台上。像这样的东西:

每张卡片都有一个公共属性类型,它是一个 int。即,CombatCard 的类型为 2。

然后,您将拥有一个 Points 向量,其中包含每种卡片类型的位置,其中每个位置对应于每种卡片类型。所以向量中的第三个元素将具有放置战斗卡的坐标。

起草时,您只需调用 a positionCard(card)which 将读取其类型并将其添加到它所属的点。

于 2013-11-11T06:45:39.797 回答