我正在尝试制作一个混乱的代数方程式的游戏。我已经为等式的每个组成部分分配了一个出口。例如,如果等式是:
x2 + y = 2(a + b)
然后x2(x平方),+,y,=和2(a + b)都将是它自己的出口。但这个等式会变得混乱,我希望用户将标签出口移动到正确的顺序。我启用了touchesMoved,但我的问题在于检查方程式是否正确。我会将代码包装成IBAction
按钮操作,但如何分析文本?我会检查每个标签之间的偏移吗?有没有简单的方法/ API来做到这一点?谢谢!
答案 0 :(得分:1)
假设您的标签名为xLabel
,plusLabel
,yLabel
,equalsLabel
和abLabel
,您可以执行以下操作:
NSUInteger xLeftBorder = CGRectGetMinX(xLabel.frame);
NSUInteger plusLeftBorder = CGRectGetMinX(plusLabel.frame);
NSUInteger yLeftBorder = CGRectGetMinX(yLabel.frame);
NSUInteger equalsLeftBorder = CGRectGetMinX(equalsLabel.frame);
NSUInteger abLeftBorder = CGRectGetMinX(abLabel.frame);
if(xLeftBorder < plusLeftBorder && plusLeftBorder < yLeftBorder && yLeftBorder < equalsLeftBorder && equalsLeftBorder < abLeftBorder){
//Correct!
}
else{
//Incorrect
}
这有点笨拙,但它确实有效。更好的方法是将它放在一个函数中,每个参数都是要检查的标签。例如:
bool isCorrect = [self checkIf:xLabel isLessThan: plusLabel isLessThan: yLabel isLessThan:equalsLabel isLessThan:abLabel];
这假设您编写的函数返回一个bool。
希望这有帮助!