簡體   English   中英

如何引用GameScene.swift文件作為其余游戲關卡的基礎?

[英]How can I reference a GameScene.swift file as a base for the rest of my game levels?

我正在開發一個spritekit游戲,並且已經完成了第一級。 對於1級,我使用.sks文件布置場景,並將其鏈接到GameScene.swift文件以獲取邏輯。

當我進入下一個級別時,很可能稱為“ GameScene2.swift”,有什么方法可以引用完成的Gamecene.swift文件作為下一個級別的基礎,然后根據需要進行覆蓋? 在各個級別之間,諸如didMoveto和didBegin之類的東西將基本相同。

我一直在搜索這個概念,但沒有找到太多的東西,我不確定如何實際調用這個概念,這也許就是為什么我找不到太多的東西。 任何見識將不勝感激。

是的,您可以繼承原始Gamecene的子類,並從正在創建的其他游戲場景繼承其所有功能。

因此,您將創建一個繼承自SKScene的原始游戲場景,如下所示:

class OriginalGameScene: SKScene {

    // all of your shared logic here (didMoveTo and didBegin) functions

}

對於項目中的所有游戲場景,只需從原始游戲場景繼承即可,如下所示:

class FirstGameScene: OriginalGameScene {

    // this class has the logic from the functions didMoveTo and didBegin 

}

只需將要在所有其他游戲場景中共享的邏輯放在OriginalGameScene ,您就可以訪問在該OriginalGameScene文件中實現的任何功能或邏輯。

我對此有一點不同。

我將所有核心游戲引擎的內容都放入了GameScene.swift和GameScene.sks文件中(例如gameHUD,玩家,得分,暫停等)。

然后,我分別創建我的關卡文件,分別為Level1.sks,Level2.sks等。但是它們將是Class類型的類,因此您不必重復重復每個Level.sks在所有關卡上通用的通用內容。文件。 然后,我加載GameScene文件並處理所有適用於所有級別的對象。

然后我加載我的水平。 重要的是要注意,當這樣做並為Levels和GameScene創建單獨的sks文件時,在加載對象時必須將其從Level文件移動到GameScene。 func createLevel(levelID:Int){

if let levelNode = SKReferenceNode(fileNamed: "Level\(levelID)") {

    if let background = levelNode.childNode(withName: "backgroundTiles") as? SKTileMapNode {
        background.move(toParent: self)
    }

    if let water = levelNode.childNode(withName: "waterTiles") as? SKTileMapNode {
        water.move(toParent: self)
    }

    if let badGuy = levelNode.childNode(withName: "badGuy") as? SKSpriteNode {
        self.badGuy = badGuy
        badGuy.move(toParent: self)
    }
}

}

編輯新的說明

想象您創建了一個吃豆子游戲。

弄清楚什么水平是通用的。 在這種情況下...-pacman-得分標簽-制表得分-幽靈運動-pacman的運動-水果運動

接下來找出每個級別的獨特之處-幽靈起始位置-迷宮-水果起始位置

因此,在您的GameScene.sks文件布局中,您的得分標簽和每個級別上發生的任何GUI

在GameScene.swift文件中,處理設置在sks文件中的任何GUI。 還可以處理鬼動作,吃豆人動作,水果動作,分數處理,物理等。

在單獨的SKS文件Level1,Level2等中創建迷宮。這允許您做的是根據需要以圖形方式布置每個迷宮,還可以在每個級別放置幻影起始位置,並在每個級別放置水果起始位置。

在GameScene內部,您可以根據播放器所在的級別加載level.sks文件。 現在,當您加載sks文件時,您將根據從level.sks文件加載的信息放置鬼影,關卡物理,水果等。

因此,現在您有了一個漂亮的流線型GameScene文件,該文件可以處理所有核心功能,並且沒有重復的內容,並且所有特定於級別的信息都存儲在Level.sks文件中。

暫無
暫無

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

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