나는 화면에서 몇 개의 객체를 움직여야하는 간단한 iOS 게임 응용 프로그램을 만들고이 움직이는 객체는 제스처를 스 와이프하여 그에 따라 방향을 변경합니다. 나는 이것을 위해 spritekit 또는 다른 게임 프레임 워크를 사용하지 않고 있으며 객체를 움직이는 방법은 초당 60 번 발사하는 NSTimer를 트리거하는 것입니다. 내가 명시 적으로 타이머를 주 스레드에 의해 실행되는 것 같아 어떤 스레드를 사용하고 있습니까? 타이머가 트리거하는 코드 블록은 속도에 따라 객체의 위치를 업데이트합니다 (x/y 방향으로 시간 단위당 픽셀로 정의 됨). 그것은 잘 작동하고 있으며, 거의 프로젝트의 끝 부분이지만, 응용 프로그램을 테스트하는 동안 나는 개체의 움직임은 꽤 좋은 것 같지만, 때로는 움직임이 약간 거칠고/뾰족하지 않다는 것을 깨달았습니다. 제 질문은 이런 식으로하는 것이 옳은 방법인지, 어떻게 성능을 향상시킬 수 있습니까? GCD와 같은 것을 사용하면 지저분한 움직임의 문제를 해결할 수 있습니까? (나는 GCD를 자세하게 조사하지는 않았지만 그것이 도움이된다면 나는 그것에 시간을 할애하고있다)NSTimer를 사용하여 화면에서 객체 이동하기
어떤 도움을 주셔서 감사합니다!
'NSTimer'을 사용하지 마십시오. 'SpriteKit'과 그들이 가지고있는 스케쥴링을 사용하거나, 다른 것을 사용하고 싶다면'CADisplayLink'를 사용하십시오. – EmilioPelaez
내 첫 번째 게임은 sprite로 UIImageViews를 사용하여 NSTimer에서 만들었습니다 (Blast The Droids를보고 싶다면 Blast The Droids). 너무 많은 스프라이트를 사용하지 않는 한 괜찮습니다. 하지만 게임에서 성능 문제가 발생했다면 SpriteKit을 사용하는 것이 더 낫다고 생각합니다. 2, 3, 4 번째 게임은 모두 SpriteKit을 사용하며 배우는 것이 더 낫지 만 어렵지 않다고 보장합니다. – GeneCode
고마워! 지금 SpriteKit으로 전환 중입니다. 지금까지는 꽤 좋은 것 같습니다 :) – comatose