【发布时间】:2014-10-16 13:29:41
【问题描述】:
我正在为 iPhone 制作一个带有 sprite kit 的游戏。在 gameScene.m 中,我添加了带有图像编号的分数,因此我可以通过以下 2 个案例获得 1 位和 2 位分数,但我想在 case3 中添加 3 位分数,如果您需要了解更多信息,请告诉我在降级之前谢谢。
//int _gamescore;
_gameScore = 0;
_finalScore = [SKSpriteNode node];
NSString *digit = [NSString stringWithFormat:@"%i",_gameScore];
[self setScore:(int)digit.length];
-(void)setScore:(int)numberofDigitsInScore
{
NSMutableString *scorestring = [NSMutableString stringWithFormat:@"%i", _gameScore];
[_finalScoreSprite removeAllChildren];
double val1;
int sides;
CGFloat y = self.size.height/2 -10;//position of score on screen
switch (numberofDigitsInScore) {
case 1: // 0-9 numbers
{
NSString *digit =[scorestring substringFromIndex:0];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:[NSString
stringWithFormat:@"Number%@",digit]]; // Number(images 0-9 number images)
sprite.position = CGPointMake(self.size.width/2, y );
[_finalScore addChild:sprite];
break;
}
case 2: // 10-99 numbers
{
for (int i = 0; i < scorestring.length; i++) {
sides =(i!=0)? 1 :-1;
NSString *digit= [scorestring substringWithRange:NSMakeRange(i, 1)];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:[NSString
stringWithFormat:@"Number%i",digit.intValue]];
if (digit.intValue == 1)
{
val1 = 5 ;
} else{
val1 = 0;
}
sprite.position = CGPointMake(self.size.width/2 + (17 -val1)*sides, y);
[_finalScore addChild:sprite];
}
break;
}
【问题讨论】:
-
所有这些代码都能让你的分数居中吗?
-
可能使用适当的字符串格式化程序,例如这个:
@"%03d"? -
你的意思是让你的分数居中?这是图像数字分数格式的代码,我只希望案例 3 加 3 位数字?
-
它不工作的漏洞
标签: ios objective-c iphone ios7 sprite-kit