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我现在又搞不清楚你想在这里做什么,为什么最后一个块的间距更小?