Pregunta

Podría usar algunos punteros con los archivos de giro de pintura en Skshapenodes para usar en una aplicación que estoy construyendo.Hay dos problemas específicos que estoy tratando de superar, como se describe a continuación.Estoy usando Xcode 6 Beta 4, Spritekit, Swift y Paintcode para el proyecto.Primero, el código:

import UIKit
import SpriteKit

class Ad_disclighttop : SKShapeNode {

    var ovalPath: UIBezierPath = UIBezierPath()
    var oval2Path: UIBezierPath = UIBezierPath()

    init()  {
        super.init()
        drawDisc()
        self.name = "White Disc"
        self.path = ovalPath.CGPath
    }

    //// Initialization

    override class func load() {
    }

    //// Drawing Methods

    func drawDisc() {
        //// General Declarations
        let context = UIGraphicsGetCurrentContext()

        //// Color Declarations
        let xFFFFFF66 = UIColor(red: 1.000, green: 1.000, blue: 1.000, alpha: 0.400)
        let x00000066 = UIColor(red: 0.000, green: 0.000, blue: 0.000, alpha: 0.400)

        //// Gradient Declarations
        let markerTopGradient = CGGradientCreateWithColors(CGColorSpaceCreateDeviceRGB(), [xFFFFFF66.CGColor, x00000066.CGColor], [0.01, 1])

        //// MarkerW_04
        //// Oval Drawing
        ovalPath = UIBezierPath(ovalInRect: CGRectMake(0, 0, 60, 60))
        UIColor.whiteColor().setFill()
        ovalPath.fill()
        x00000066.setStroke()
        ovalPath.lineWidth = 1
        ovalPath.stroke()


        //// Oval 2 Drawing
        oval2Path = UIBezierPath(ovalInRect: CGRectMake(2.5, 2.5, 57, 57))
        CGContextSaveGState(context)
        oval2Path.addClip()
        CGContextDrawRadialGradient(context, markerTopGradient,
            CGPointMake(35.87, 38.3), 20.28,
            CGPointMake(23.16, 25.59), 40.36,
            UInt32(kCGGradientDrawsBeforeStartLocation) | UInt32(kCGGradientDrawsAfterEndLocation))
        CGContextRestoreGState(context)
    }

}

@objc protocol StyleKitSettableImage {
    var image: UIImage! { get set }
}

@objc protocol StyleKitSettableSelectedImage {
    var selectedImage: UIImage! { get set }
}

El primer problema que encuentro es que casi cada archivo de pintura que produce, que no sea más trivial, tiene más de una UIBEZIERPATH en ella.La propiedad del camino de Skshapenode solo puede tomar un camino, por lo que conozco, pero tal vez sea posible encajarlas como?

El segundo problema es que los colores de gradiente no parecen funcionar.

Las cosas que hice con el giro real en un skshapenode fue: 1. Importar Spritekit 2. Cambie la extensión de la clase de NSOBJECT a SKSHAPENODE 3. Cambie el nombre de la función de dibujo. 4. Cree una función de inicio para el nodo de forma que establece el nombre y la ruta

Estoy feliz de recibir cualquier consejo en todo este tipo de conversión.¡Gracias!

¿Fue útil?

Solución

Dado que los colores de gradiente no funcionan de todos modos en los nodos Skshapnode, decidí prestar archivos PNG desde dentro de PointCode, y creo skspritenodes con ellos.No es la solución que esperaba, pero es lo que es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top