You could improve performance on device by not rotating the image every time. Currently it’s very sluggish. Some options:
- calculate all 360 rotations at startup (with loading delay you could perhaps disguise with instructional text)
- caching the rotations in memory after you generate them during play (but this would mean the lock would get progressively smoother to rotate)
- pre-render all rotations in a sprite sheet (using your game code to spit out the rotated images, or an external tool) and include them with your game. this one is the best method and would be my choice.