2013-09-27 32 views
20

Tôi có một lớp con của SKSpriteNode (monsterNode). Nó tự động chạy xung quanh màn hình bằng cách sử dụng vectơ để theo dõi trình phát. Tôi hiện đang sử dụng các hành động sau đây để làm cho nó chạy xung quanh:Có thể kết thúc một hành động giữa SKAction không?

SKAction *actionMove = [SKAction moveTo:actualDistance duration:time]; 
     [self runAction:actionMove completion:^ { 
      _currentState = SVGMonsterStateIdle; 
     }]; 

Tôi tự hỏi nếu nó có thể làm cho nó nên monsterNode thực sự ngừng chạy các hành động nếu nó chạm vào ranh giới của màn hình thiết bị iOS. Tôi hiện đang có SKSpriteNode ranh giới trên các cạnh của màn hình, liên kết với một đại biểu liên lạc để thông báo nếu con quái vật và các bức tường làm cho liên lạc. Tuy nhiên, điều đó có nghĩa là không có gì nếu tôi không thể thực sự ngừng hành động actionMove của monster từ khi hoàn thành. Con quái vật cần phải dừng lại ở ranh giới của màn hình. Nếu không thể dừng việc thực thi giữa SKAction, có cách nào để làm như vậy không?

Trả lời

36

Nhìn vào tập tin SKNode.h tiêu đề - nó có hai chức năng được liệt kê:

- (void)removeActionForKey:(NSString *)key; 
- (void)removeAllActions; 

Sau đó sẽ làm việc: [monsterNode removeAllActions];

+0

shoot. Tôi đã xem Tài liệu sai (Tài liệu SKAction). Cảm ơn! – EvilAegis

+0

Làm theo câu hỏi: Dường như có cách nút thiết lập thuộc tính khóa. Phân lớp? – Jonny

+2

Chỉnh sửa: thay vì '[nút runAction: myaction]', sử dụng '[node runAction: myaction withKey: @" mykey "]' ;. – Jonny

Các vấn đề liên quan