spritekit ios sprite-kit

ios - spritekit - skview



¿Es posible generar/dibujar texturas con SpriteKit? (2)

No puedo googlear nada. En realidad, es bastante poca información sobre este nuevo marco. Lo único que pude encontrar es la aplicación del filtro Core Image a una textura. Pero supongo que para dibujar un rectángulo simple sobre la imagen necesito escribir un filtro CI propio.

¿Alguien sabe algo sobre el tema?


Las texturas son simples representaciones gráficas, no voy a resolver esto con ellas.

Creé un sprite a partir de la textura, luego un segundo sprite rectangular con un tamaño dado (por ejemplo, 100x100) y lo CGPointZero al original en una posición dada (por ejemplo, CGPointZero ).

SKSpriteNode *rectSprite = [SKSpriteNode spriteNodeWithColor:[SKColor magentaColor] size:CGSizeMake(100, 100)]; rectSprite.position = CGPointZero; [originalSprite addChild:rectSprite];

De esta forma, el rectángulo será una parte del sprite y todas las transformaciones / acciones del sprite padre (el que tiene la textura) también se aplicarían a él.


Si todo lo que necesita es un rectángulo, use la solución de @ Kex.

En general, puedes crear una textura desde cualquier UIImage o CGImage. [SKTexture textureWithImageNamed:@"Spaceship.png"] es realmente una conveniencia para [SKTexture textureWithImage:[UIImage imageNamed:@"Spaceship.png"]]

Entonces, para hacer un dibujo personalizado en una textura, puede usar, por ejemplo:

UIGraphicsBeginImageContext(CGSizeMake(256, 256)); CGContextRef ctx = UIGraphicsGetCurrentContext(); [[SKColor yellowColor] setFill]; CGContextFillEllipseInRect(ctx, CGRectMake(64, 64, 128, 128)); UIImage *textureImage = UIGraphicsGetImageFromCurrentImageContext(); SKTexture *texture = [SKTexture textureWithImage:textureImage]; SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithTexture:texture]; [self addChild:sprite];