我正在做一個遊戲,每個關卡都包含在一個精靈中。當我退出一個關卡時,精靈將從舞臺上移除並設置爲空。問題在於精靈內部的所有變量和事件監聽器都保持不變。有沒有比找到和禁用每個遊戲機制更簡單的解決方案?AS3遊戲的水平作爲動畫片段?
-2
A
回答
1
我有一個非常類似的方法。我不知道它會對你有用,但是這或多或少是我所做的。說實話,你的問題有點含糊,但我會採取一些措施。 (對於任何可能的評論員來說,是的,我在我的時間軸上有代碼,而且我知道很多人認爲這是「糟糕的做法」。相信我,替代方案對我的項目來說是不可行的。然而,從技術上講,一個可能做類似的事情,以我使用文檔類,我想):
-
我也各有「級別」(實際上,對我來說,每個位置探索)在一個單獨的影片剪輯。顯然,每個MovieClip都有自己的代碼。但是,變量和事件偵聽器在「startClip()」函數中初始化。然後,在「stopClip()」函數中完成清理任務(如刪除事件偵聽器和變量)。
這些級別通過創建MovieClip,然後調用MovieClip上的startClip()放置在舞臺上。當我想切換到另一個級別時,我調用stopClip(),然後刪除MovieClip。
此方法的另一個優點是,我可以在舞臺上爲常見的GUI元素添加一個MovieClip,因此當我切換「關卡」時,通用GUI不變。
我相信還有其他的方法可以完成同樣的事情,但這是我做的,而且對我很有用。
還有一個提示:如果您將大部分(如果不是全部)常見任務放置在舞臺上,文檔類中,並且必要時在內部,您將減少需要刪除的變量和事件偵聽器自定義班級或兩個。實際上,我有很多自定義類,因此,每個MovieClip中大約90%的代碼只是調用這些類中的函數和變量。
對於我來說,這些自定義類控制(除其他外)評分,聲音回放,隨機化任務,常用陣列任務和保存玩家進度。
希望這會有所幫助!
相關問題
- 1. as3 - 當水平翻轉動畫片時,動畫片會閃爍?
- 2. AS3:通過AS3更改動畫動畫片段的兒童動畫片段
- 3. AS3動畫片段滾動
- 4. AS3多個(動畫片段按鈕)動畫製作一個動畫片段
- 5. AS3 addEventListener在另一個動畫片段內的動畫片段
- 6. 在動畫名稱爲as3的movieclip中訪問動畫片段
- 7. 使用Rails製作AS3遊戲動態
- 8. as3孩子作爲動畫片段 - 不會接受函數
- 9. 「Drag'n'Drop」遊戲動畫
- 10. 動畫水平
- 11. 畫布遊戲動畫
- 12. AS3遊戲循環和並畫框
- 13. 遊戲經驗水平的問題
- 14. 水平運行遊戲的起始點
- 15. 如何在與as3同時訪問所有動畫片段(和動畫片段內的動畫片段,...)?
- 16. AS3簡單的水平畫廊
- 17. 水平點擊動畫幻燈片
- 18. AS3 addchild保持動畫運動的動畫片段
- 19. AS3添加動畫片段槽功能
- 20. as3動畫片段反鋸齒
- 21. AS3按基類選擇動畫片段
- 22. AS3 mouseClick忽略動畫片段
- 23. 臨時動畫片段容器as3
- 24. 禁用片段中的水平滾動
- 25. AS3將事件偵聽器添加到動畫片段中的動畫片段
- 26. Unity3D 2D遊戲。水平安裝相機
- 27. AS3中爲2D平臺遊戲提供新層次的問題
- 28. AS3賽車遊戲?
- 29. AS3 - 抓球遊戲
- 30. AS3遊戲架構
DocumentClass和OOP是唯一的清潔方法。 FrameScripts只是一個糟糕的實踐,它是來自as2的剩餘物。話雖如此,我總是說「只要它有效,誰在乎」。但既然你有一個半OOP aproach(使用一些類),我不明白爲什麼不使它適應開始。而且我從來沒有見過一個項目,它不是「可行」的正確方式!只是說;) – M4tchB0X3r
嘿,總是有第一次。問題在於我的項目龐大。單獨的遊戲核心就存在近10,000行代碼,時間軸上還有數十萬行,還有數千個獨特的交互元素。另外,事實上我的90%的(非常複雜的)動畫元素都來自我的非程序員平面設計師,所以我不可能通過代碼創建這些東西。因此,我必須在時間軸上編寫腳本。如果我採取將所有內容都放在文檔類中的方法,那麼就不可能從數以百萬計的代碼中找到一行代碼。 – CodeMouse92
順帶一提,注意諸如「唯一」,「永遠」和「永不」等短語。對於任何項目他們都很少真實。如果是的話,我們現在已經實現了模塊化的「樂高」編程。 – CodeMouse92