簡體   English   中英

在Swift中組織動畫

[英]Organising animations in Swift

我在Swift中有很多不同的場景。 每個場景都會簡短地對多個對象進行動畫處理。 這些對象是完全不同的,並且都以各自獨特的方式進行動畫處理。

問題是,現在我每個場景都有幾行代碼,所有這些代碼都控制着不同的SKAction。 有沒有辦法減少這類代碼或重組代碼,以便我們將所有代碼放在一個地方(並從其他地方提取)?

我的想法之一是使所有動畫節點成為一個特定的類,例如AnimatedNode,然后將所有動畫放入其中。 作為單獨的功能。 這將有效地從scene.swift文件中刪除代碼。 這是我能做的最好的事情,還是有其他我看不到的方法?

編輯:我的動畫代碼在每個場景中運行100多行,但是作為一個如何在一個這樣的節點上執行動畫的示例,這是它的樣子:

// can
        let can = bgNode.childNode(withName: "can")
        let tip = SKAction.rotate(byAngle: CGFloat(GLKMathDegreesToRadians(10)), duration: 0.5)
        let tipSound = SKAction.playSoundFileNamed("pot", waitForCompletion: false)
        can?.run(SKAction.sequence([tip, tipSound, tip.reversed()]))

SKActions應該重新使用或至少預先加載。 您的想法很好,因為一遍又一遍地用相同的代碼弄亂場景是不好的設計。

您可以制作一個ActionManager,該屬性具有您要運行的每個動作的屬性,這些屬性已經預先加載為屬性。這將提高游戲的性能,特別是如果您多次使用它。

有多種方法可以執行此操作,但是普通函數(盡管性能不如屬性)是至少組織代碼的好方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM