Ios 屏幕上的间距精灵

Ios 屏幕上的间距精灵,ios,sprite-kit,Ios,Sprite Kit,大家好,我希望有人能告诉我如何减少从阵列中添加的精灵之间的间距,因为它们是均匀分布和居中的,但我需要减少精灵之间的宽度 以防万一,整个代码块足以测试间距 int images = 5 for(int i = 0; i < images; ++i) { ///load same ammount of spriteimages as images SKSpriteNode *sprite =

大家好,我希望有人能告诉我如何减少从阵列中添加的精灵之间的间距,因为它们是均匀分布和居中的,但我需要减少精灵之间的宽度

以防万一,整个代码块足以测试间距

int images = 5
     for(int i = 0; i < images; ++i)
         {
             ///load same ammount of spriteimages as images
            SKSpriteNode *sprite = 
            [SKSpriteNode spriteNodeWithImageNamed:@"Null.jpg"];

            sprite.name = @"sprite.name =Sprite%d",[NSString stringWithFormat:@"%i",i];
            NSLog(@"***sprite.name %@",[NSString stringWithFormat:@"%i",i]);

             ///spriteSpacing
             float offsetFraction = ((float)(i + 1)) / (images + 1);
             float widthOfScreen =self.frame.size.width;

             sprite.position = CGPointMake(widthOfScreen * offsetFraction,self.frame.size.height/2 +200);
            [self addChild:sprite];
        }
int-images=5
对于(int i=0;i

试试这个,看看会发生什么

float widthOfScreen = self.frame.size.width + 100.0;
最后我做了这件事

float padding = 100.0f;
        int blockWidth = [SKSpriteNode spriteNodeWithImageNamed:@"Null.jpg"].size.width;
        float xOffset = (self.frame.size.width - (blockWidth * images + padding * (images-1))) / 2;
        //float xOffset = (self.frame.size.width - (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2;
        float StartPoint = xOffset+blockWidth/2;
         for(int i = 0; i < images; ++i)
         {

        SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Null.jpg"];


         ///set start point of 1st sprite to load 
         if (i>0&&i<images)
         {

             StartPoint = StartPoint+ blockWidth+padding;
         }

         //increment sprite position
         else if (i==images)
         {

              StartPoint = StartPoint+ blockWidth;
         }
         sprite.position = CGPointMake(StartPoint, self.frame.size.height * 0.8f);
        [self addChild:sprite];
    }
float padding=100.0f;
int blockWidth=[SKSpriteNode SPRITENODEWITHIMAGENAME:@“Null.jpg”].size.width;
float xOffset=(self.frame.size.width-(blockWidth*images+padding*(images-1))/2;
//float xOffset=(self.frame.size.width-(blockWidth*numberOfBlocks+padding*(numberOfBlocks-1))/2;
浮动起始点=xOffset+块宽度/2;
对于(int i=0;i如果(i>0&&iThanks hamobi,否),则此操作无效。屏幕宽度基本上是视图(整个屏幕)因此,这只需在视图的大小上再增加100,并使精灵更加偏离中心……为什么不将
float StartPoint=xOffset+blockWidth/2;
设置为
float StartPoint=xOffset+blockWidth/2-padding;
则可以消除if条件,只需使用
StartPoint=StartPoint+blockWidth+padding;
hmmm,似乎不起作用,因为在添加第一个精灵时,它还添加了填充,将所有精灵移到上方(因此不再居中)-包含了代码-以防我做错了什么(这方面我很新)float StartPoint=xOffset+blockWidth/2-padding;for(int I=0;Iorigin=0
BlockWidth=2
,'padding=1
。你的代码,
SP=0+2/2
SP是1
,如果
SP=SP+2
点击,那么
SP是3
。我的代码
SP=0+2/2-1
,点击
SP=0
+2+1
,所以
SP是3`哦,等等,没关系,我以为你移位了if(I==0),而不是I=images我现在又搞不清楚你想在这里做什么,为什么最后一个块的间距更小?