У меня есть SKSpriteNode
с изображением SKTexture
. Я установил centerRect
моего узла на то, что я бы сказал, чтобы он растянулся вверх, чтобы стрелка не искажалась. Изображение 190x190 px
и я устанавливаю мой centerRect
как таковой:Растяжка SKSpriteNodes
CGRectMake(90/190, 90/190, 5/190, 5/190);
Из моего понять из docs, это говорит, что каждый угол 90x90 px
, а центр Прямоугольник на 3х3 есть 5x5 px
. Это означало бы растяжение только 5x5 пикселей.
Но мой результат:
У меня есть класс, называемый Obstacle
, который является подклассом SKSpriteNode
и когда он инициализируется, она проходит в CGRect
выше наряду с именем изображения в этой метод:
-(void)setTextureNamed:(NSString*)imageName centerRect:(CGRect)rect
{
// set texture for sprite
UIImage* image = [UIImage imageNamed: imageName];
SKTexture* texture = [SKTexture textureWithImage: image];
[self setTexture: texture];
// make stretchable
self.centerRect = rect;
[self setSize: texture.size];
}
И в моем SKScene
, когда Obstacle
добавляется этот код называется:
int bottomHeight, topHeight, topY, bottomY, max;
bottomY = 0;//_floor.size.height/2;
max = self.view.frame.size.height - _floor.size.height/2 - 2*OBSTACLE_PADDING - 2*OBSTACLE_MIN_HEIGHT;
bottomHeight = arc4random() % max + OBSTACLE_MIN_HEIGHT;
topY = bottomHeight + OBSTACLE_PADDING + _floor.size.height;
topHeight = self.view.frame.size.height - topY;
bottomY += bottomHeight/2;
topY += topHeight/2;
Obstacle *bottom = [[Obstacle alloc] initWithHeight: bottomHeight flipped: NO];
bottom.zPosition = 0;
[bottom setPosition: CGPointMake(400, bottomY)];
NSArray* objs = @[bottom, top];
for (Obstacle* o in objs)
{
o.zPosition = 2;
[self addChild: o];
[o runAction: [SKAction
moveToX: -100 duration: SPAWN_SPEED*2]
completion:^{
[o removeFromParent];
}];
}
Я думаю, это связано с тем, как вы представляете SKView для просмотра UIViewController в viewDidLoad. Но кто знает? У нас мало информации. –
Опубликовать больше кода, а не описывать, что вы пытаетесь сделать –
@AndreyGordeev Извините, я поставил еще несколько блоков кода, которые отвечают за создание объектов – Chris