快速提问,
我对编程很新,遇到了问题。我正在制作一个游戏,并且在每一轮结束时,那一轮中得分最高的赢家都出局了,我隐藏了该玩家的玩家视图和标签,但需要弄清楚如何制作一个方法以便在我的情况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语句以查看每个标签是否被隐藏然后相应地设置它们,但它的效率极低。这是一个骰子游戏,经过三次滚动后,转向上升了一次。
提前致谢!
答案 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
来完成此操作。