2010-03-26 1 views
0

72 개의 LED 조명을 포함하는 몇 가지 다른보기를 수행해야합니다. LED 클래스를 작성하여 LED를 반복하여 다른 색상 (녹색, 빨간색, 주황색, 파란색 없음 등)으로 설정할 수 있습니다. 그러면 LED가 해당 .png를로드합니다.많은 "LED"- 스레드, UIView 애니메이션을 애니메이션화하기위한 전략? NSOperation? (iPhone)

잘 작동합니다. LED를 반복하여 설정합니다. 이제는 언젠가 변경 색상을 켜거나 끄지 않아도되지만 약간의 지연만으로 켜야한다는 것을 알고 있습니다. 이퀄라이저처럼.

72 개의 LED가 포함 된 5-10 개의 뷰가 있으며, 최소 메모리/CPU 변형으로 위의 내용을 얻고 싶습니다.

for(LED *l in self.ledArray) { 

    [l display:Green]; 
} 

상기와 같이 LED 내부 I 단순히 루프

올바른 논리를 수행하는 switch case이다. 이것이 실제 LED와 마이크로 콘트롤이라면 루프 내에서 sleep(100) 또는 비슷한 것을 사용 하겠지만, 분명히 그런 이유로 피하는 것이 좋을 것 같습니다.

나는 performOnThread withDelay을 수행하는 것이 실제로 소모 될 것이라고 생각했기 때문에 UIView animation은 알파를 변경하고 NSOperation은 작은 기능을 위해 많이 들어갈 것입니다.

이 문제를 해결할 수있는 효율적이고 똑똑한 방법이 있습니까?

주어진 영감을 주셔서 감사합니다. :)

답변

2

나는 확실히 OpenGL을 사용합니다!

+0

안녕하세요 rjobidon .png를 사용하는 오버 헤드가 너무 커서 정당화 될 수 있습니까? 위의 Png를 구현 한 이후로 약간의 지연이 있었지만 PNG가 범인이라는 것을 입증하지 못했습니다. 입력 해 주셔서 감사합니다. – RickiG

+0

OpenGL은 높은 프레임 속도로 많은 양의 이미지 조작을 처리 할 수있는 매력이 될 것입니다. OpenGL을 원하지 않으면 스프라이트 조작을 수행 한 다음 단일 이미지보기를 업데이트하기 위해 오프 스크린 버퍼를 구현할 수도 있습니다. OpenGL보다 단순 할 수 있으며 처리 할 72 개의 독립적 인 이미지보다 효율적입니다. 첫 번째 해결 방안은 간단하지만 72 개의 그래픽 객체를 처리하도록 OS를 강제합니다. 행운을 비네! – rjobidon