2015-11-26 6 views
0

Так что быстро, для устройств iOS (хотя кросс-платформа была бы крутой, если бы я все еще мог кодировать в Xcode) Я пытаюсь сделать что-то довольно простое.Лучший способ сделать конечный пиксель?

Все, что я хочу сделать, это небольшие частицы, перемещающиеся по экрану, оставляя след. К сожалению, я не могу использовать традиционные системы частиц, потому что мне нужно программировать их движение.

В любом случае, я думал, что если бы я мог хранить все пиксели в большом массиве и просто менять их, как мне нужно. Таким образом, я могу устанавливать пиксели на основе частицы и просто убирать их каждый кадр, тем самым создавая иллюзию следа.

Что было бы хорошим способом сделать это? Я смотрел на кварты, основную графику и opengles, но я не могу найти один учебник, в котором рассказывается, как рисовать один пиксель ... Только те, которые рассказывают, как рисовать линии и другие вещи. Мне просто нужно, чтобы иметь возможность рисовать пиксель экрана на пиксель (если у вас есть идея получше)

  1. Какие рамки следует использовать
  2. Как нарисовать один пиксель в нем дано х, у экрана (или связать учебник).

Спасибо большое!

ответ

1

CoreImage с CIImageAccumulator может помочь вам в этом. В моем проекте FurrySketch я делаю что-то очень похожее. В двух словах:

  1. Начинают интерфейс графического контекста: UIGraphicsBeginImageContext(view.frame.size)
  2. Используйте такие функции, как CGContextAddLineToPoint привлечь к контексту
  3. Создание CIImage рисунка: let drawnImage = UIGraphicsGetImageFromCurrentImageContext()
  4. Используйте CISourceOverCompositing композитный что новое изображение по сравнению с предыдущим в аккумуляторе и записать составное изображение обратно в аккумулятор: compositeFilter.setValue(CIImage(image: drawnImage), forKey: kCIInputImageKey) compositeFilter.setValue(imageAccumulator.image(), forKey: kCIInputBackgroundImageKey) imageAccumulator.setImage(compositeFilter.valueForKey(kCIOutputImageKey) as! CIImage)

  5. Дисплей нового композиционного материала в пользовательском интерфейсе: imageView.image = UIImage(CIImage: imageAccumulator.image())

К также добавить размытие к этому изображению, вы можете получить ваши частицы исчезать тоже, как я сделал here.

+0

Так что я смотрел на этот код. К сожалению, я не могу использовать составные фильтры, поскольку я пытаюсь настроить iOS 8.0+. Это их другой вариант? –