2016-02-19 18 views
6

Mã sau sẽ tạo hiệu ứng xoay vòng.Dừng một SKAction đang chạy - Bộ ghi chú

let something:SKSpriteNode = SKSpriteNode() 

func start(){ 
    let rotateAction = SKAction.rotateToAngle(CGFloat(M_PI), duration: 10.0) 
    something.runAction(SKAction.sequence([rotateAction])) 
} 

Bây giờ tôi muốn dừng hoạt ảnh trong thời lượng hoạt ảnh. Có điều gì tương tự như sau không? Tôi muốn dừng hoạt ảnh khi người dùng chạm vào màn hình.

func stop(){ 
    something.SKAction.stop() 
} 

Trả lời

10

Bạn j ust phải sử dụng một trong hai:

  1. something.paused = false // or true để tạm dừng các hành động trên nút
  2. something.removeAllActions() để chắc chắn loại bỏ các hành động liên quan đến nút
  3. tên hành động của mình khi tung ra something.runAction(action,withKey:"action1") và sau đó something.removeActionForKey("action1") để loại bỏ một hành động cho

Bạn cũng có thể thay đổi tốc độ nếu cần thiết.

+0

tùy chọn đầu tiên thực sự đơn giản và gọn gàng, cảm ơn –

2

Thứ nhất, chạy các hành động với một chìa khóa để bạn có thể nhận diện sau này:

something.runAction(rotateAction, withKey: "rotate action") 

Sau đó, bạn có thể ngăn chặn nó sau này bằng cách gọi

something.removeActionForKey("rotate action") 

Ngoài ra, bạn có thể loại bỏ tất cả hành động cũng

something.removeAllActions() 
Các vấn đề liên quan