2016-03-25 25 views
0

Animasyonlu bir LED Banner oluşturmaya çalışıyorum. 5x8 haneli bir ekran kullanarak mektup görünümleri oluşturabilir ve metni hareket ettirebilirim (https://github.com/drollig8/LEDBanner.git): Sorun: yalnızca 10 harfli bir metin ile iOS saniyede 25 kez 400 görüntüyü yenilemek zorunda kalacaktır. Bu çeşit CPU'yu öldürür.LED Banner görünümde Swift görünümü

Bu çabaya daha fazla enerji tasarrufu sağlamak için neler yapabilirim?

+0

LED'lerden ziyade bir yazı tipi kullanmaya ne dersiniz? Bu bir seçenek mi? – KeyMaker00

cevap

1

Sağdan sola kaydırma ekranı için bir yaklaşım.

  1. DrawRect işleviyle 5x8 hücre çizebilen özel bir görünüm oluşturun.
  2. Ekranınızı göstermek için bu görünümlerin 11'ini kullanın. Uygun boyutta bir görünüme alt raporlar olarak ekleyin.
  3. Saniyenin her bir 1/25'i, 11 görünümü taşıyın ve en soldaki sonuncu kısım kaydırılmışsa, sağ tarafına taşıyın ve yeni harf verisiyle güncelleyin.
+0

Bu, hücrenin içeriği sabit kaldığı gibi geliyor. Ancak pürüzsüz bir kaydırma ile harflerin hücrenin "içinden geçmesi" gerekir, bu da saniyede 25 kez yeni bir hücre oluşturmam gerektiği anlamına gelir. Her bir hücrenin "bit" veya "rakam" değerlerini görüntülemesi için 40 alt görünüm içermesi gerekir. –

+0

Her 1/25 saniyede bir hücrenin 1/5'ini hücrelere taşırsınız. Bitler dikdörtgen doldurur. Bir drawRect rutininde doldurulmuş dikdörtgenlerin nasıl çizileceğine bakın. Bu yöntem toplam 12 görüntüleme kullanır ve sadece ekrana ilk girildiği zaman yeni bir harf çekilir. – vacawama

+0

Bu şekilde, bitleri temsil etmek için alt görünümleri kullanarak yapabilirsiniz. Yalnızca "on" bitleri olduğu için hücrenin birçok alt görünümünü oluşturursunuz. Bir harfi kaydırmak, yine de hücre süper görünümünü hareket ettirmek kadar kolay olurdu. Bu şekilde üç seviyeli görünümünüz olur: ekranı görüntülemek için bir görünüm, 11 harfli alt gösterimler ve her bir harfin "açık" piksellerini temsil eden birçok alt görünümü. – vacawama

İlgili konular