Я пытаюсь написать игру для iOS, работающую с пикселями. Я обнаружил, что могу получить цвет пикселя с помощью метода, упомянутого здесь , а также есть другой метод получения цвета пикселя в изображениях. Но я не смог найти никакой информации о получении цвета пикселя в SKScene. Нет ответа на этот вопрос
Я представляю, что это будет очень похоже на метод, используемый для этого в UIView, но я не знаком с пиксельным кодированием в Swift. Вот что я использовал для получения цвета пикселя в UIView:
func getPixelColorAtPoint(point:CGPoint) -> UIColor{
let pixel = UnsafeMutablePointer<CUnsignedChar>.alloc(4)
let colorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedLast.rawValue)
let context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, bitmapInfo.rawValue)
CGContextTranslateCTM(context, -point.x, -point.y)
self.layer.renderInContext(context!)
let color:UIColor = UIColor(red: CGFloat(pixel[0])/255.0, green: CGFloat(pixel[1])/255.0, blue: CGFloat(pixel[2])/255.0, alpha: CGFloat(pixel[3])/255.0)
pixel.dealloc(4)
return color
}
Думаю, мне нужно изменить строку '''self.layer....'''. Может ли кто-нибудь помочь мне с этим?
Также я не смог найти никакой информации о том, как задать цвет пикселя непосредственно в UIView или SKScene. Есть идеи?
Кстати: я попытался создать класс UIView/SKNode с размером = 1 пиксель, а затем добавить его в UIView/SKScene, чтобы я мог напрямую установить цвет. Это выполнимо для небольшого количества пикселей. Но я имею дело со многими из них, возможно, с сотнями или тысячами. Это неправильный способ сделать это, так как производительность очень низкая.