如何根据游戏中剩余的玩家数量来更新我的标签子视图

时间:2013-08-23 05:23:25

标签: ios objective-c uilabel

快速提问,

我对编程很新,遇到了问题。我正在制作一个游戏,并且在每一轮结束时,那一轮中得分最高的赢家都出局了,我隐藏了该玩家的玩家视图和标签,但需要弄清楚如何制作一个方法以便在我的情况4的开关中( self.players)隐藏的标签和玩家视图没有设置,转弯变量根据我从开关拿出的标签重新排列。

switch (self.players) {
    case 5:
        switch (self.turn) {
            case 1:
                explanationLabel.text = [NSString stringWithFormat:@"%d",score];
                break;
            case 2:
                explanationLabelTwo.text = [NSString stringWithFormat:@"%d",score];
                break;
            case 3:
                explanationLabelThree.text = [NSString stringWithFormat:@"%d",score];
                break;
            case 4:
                explanationLabelFour.text = [NSString stringWithFormat:@"%d",score];
                break;
            case 5:
                explanationLabelFive.text = [NSString stringWithFormat:@"%d",score];
                break;

例如,如果playerFour由explainLabelFour代表什么赢得了第一轮,那么四名球员的转换应该是......

 switch (self.players) {
case 4:
    switch (self.turn) {
        case 1:
            explanationLabel.text = [NSString stringWithFormat:@"%d",score];
            break;
        case 2:
            explanationLabelTwo.text = [NSString stringWithFormat:@"%d",score];
            break;
        case 3:
            explanationLabelThree.text = [NSString stringWithFormat:@"%d",score];
            break;
        case 4:
            explanationLabelFive.text = [NSString stringWithFormat:@"%d",score];
            break;

我发现使其工作的唯一方法是执行if语句以查看每个标签是否被隐藏然后相应地设置它们,但它的效率极低。这是一个骰子游戏,经过三次滚动后,转向上升了一次。

提前致谢!

2 个答案:

答案 0 :(得分:0)

我不确定我完全理解你需要什么,但你可以为每个玩家设置一个标志

player1.isPlaying = YES;

循环播放当前活跃的玩家。

答案 1 :(得分:0)

针对explanationLabel

,为每个self.turn代码添加一个标记

例如,

explanationLabel.tag = 1;
explanationLabelTwo.tag = 2;
explanationLabelThree.tag = 3;
.
.
explanationLabelN.tag = N;

现在,您要调用一个名为hideLabels

的方法
- (void) hideLabels {
    explanationLabel.hidden = YES;
    explanationLabelTwo.hidden = YES;
    explanationLabelThree.hidden = YES;
}

您必须在外部切换案例调用之前调用hideLabels

然后在案例中,使用标记

获取标签对象
switch (self.players) {
    case 5:
        UILabel *tempExplanationLabel = (UILabel *)[self.view viewWithTag:self.turn];
        tempExplanationLabel.hidden = NO;
}

到此为止,您只会显示当前转弯的标签,如果您需要,您还可以更改该特定标签的框架,以获得更好的结果可见性。您可以通过将explanationLabel.frame合并到tempExplanationLabel.frame来完成此操作。