iFIERO -- 如何實(shí)現(xiàn)游戲中的ENDLESS無限循環(huán)背景

ENDLESS無限循環(huán)背景1.png

紅色框中的節(jié)點(diǎn)bgNode1,SpriteNode的名稱Name BG1 位置為Position(0,0)

bgNode1 = childNode(withName: "BG1") as! SKSpriteNode

黃色框?yàn)榈墓?jié)點(diǎn)bgNode2, SpriteNode的名稱Name BG2 位置為Position(0,2048)

bgNode2 = childNode(withName: "BG2") as! SKSpriteNode

二個(gè)SpriteNode同時(shí)向下移動(dòng)

    func  updateBackground(deltaTime:TimeInterval){
        // 下移
        bgNode1.position.y -= CGFloat(deltaTime * 300)
        bgNode2.position.y -= CGFloat(deltaTime * 300)     
    }

    override func update(_ currentTime: TimeInterval) {
        // 每Frame的時(shí)間差
        if lastUpdateTimeInterval == 0 {
            lastUpdateTimeInterval = currentTime
        }
        deltaTime = currentTime - lastUpdateTimeInterval
        lastUpdateTimeInterval = currentTime
        
        // endless 無限循環(huán)星空背景
        updateBackground(deltaTime: deltaTime)
    }

ENDLESS無限循環(huán)背景2.png

當(dāng)紅色框BG1的位置bgNode1.position.y < bgNode1.size.height 的高度(即屏幕的height),把bgNode1
移到之間黃色框的位置

// 第一個(gè)背景node
        if bgNode1.position.y  < -bgNode1.size.height {
            bgNode1.position.y = bgNode2.position.y + bgNode2.size.height
        }
ENDLESS無限循環(huán)背景3.png

此時(shí)黃色框bgNode2.position.y = 0 位于屏幕的正中央
紅色框bgNode1.position.y = 2048 取代之間花黃色框的位置,同理,黃色框再次向下移動(dòng)時(shí)惶我,當(dāng)黃色框BG2的位置bgNode2.position.y < bgNode2.size.height 的高度(即屏幕的height),把bgNode2
移到之間當(dāng)前紅色框(bgNode1)的位置戳晌,代碼如下

// 第二個(gè)背景node
        if bgNode2.position.y  < -bgNode2.size.height {
            bgNode2.position.y = bgNode1.position.y + bgNode1.size.height
        }

完整的代碼如下:

var lastUpdateTimeInterval:TimeInterval = 0
    var deltaTime:TimeInterval = 0

override func update(_ currentTime: TimeInterval) {
        // 每Frame的時(shí)間差
        if lastUpdateTimeInterval == 0 {
            lastUpdateTimeInterval = currentTime
        }
        deltaTime = currentTime - lastUpdateTimeInterval
        lastUpdateTimeInterval = currentTime
        
        // endless 無限循環(huán)星空背景
        updateBackground(deltaTime: deltaTime)
    }
    
    func  updateBackground(deltaTime:TimeInterval){
        // 下移
        bgNode1.position.y -= CGFloat(deltaTime * 300)
        bgNode2.position.y -= CGFloat(deltaTime * 300)
        // 第一個(gè)背景node
        if bgNode1.position.y  < -bgNode1.size.height {
            bgNode1.position.y = bgNode2.position.y + bgNode2.size.height
        }
        // 第二個(gè)背景node
        if bgNode2.position.y  < -bgNode2.size.height {
            bgNode2.position.y = bgNode1.position.y + bgNode1.size.height
        }
        
    }

更多游戲教程:http://www.iFIERO.com
Github游戲代碼傳送門:https://github.com/apiapia/SpaceBattleSpriteKitGame

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末症杏,一起剝皮案震驚了整個(gè)濱河市薯鳍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌踱讨,老刑警劉巖峭梳,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碾篡,死亡現(xiàn)場離奇詭異虱而,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)开泽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門牡拇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人穆律,你說我怎么就攤上這事惠呼。” “怎么了峦耘?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵剔蹋,是天一觀的道長。 經(jīng)常有香客問我辅髓,道長泣崩,這世上最難降的妖魔是什么少梁? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮矫付,結(jié)果婚禮上凯沪,老公的妹妹穿的比我還像新娘。我一直安慰自己买优,他們只是感情好妨马,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杀赢,像睡著了一般烘跺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上葵陵,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天液荸,我揣著相機(jī)與錄音,去河邊找鬼脱篙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伤柄,可吹牛的內(nèi)容都是我干的绊困。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼适刀,長吁一口氣:“原來是場噩夢啊……” “哼秤朗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起笔喉,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤取视,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后常挚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體作谭,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年奄毡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了折欠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吼过,死狀恐怖锐秦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盗忱,我是刑警寧澤酱床,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站趟佃,受9級特大地震影響扇谣,放射性物質(zhì)發(fā)生泄漏慷垮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一揍堕、第九天 我趴在偏房一處隱蔽的房頂上張望料身。 院中可真熱鬧,春花似錦衩茸、人聲如沸芹血。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幔烛。三九已至,卻和暖如春囊蓝,著一層夾襖步出監(jiān)牢的瞬間饿悬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工聚霜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狡恬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓蝎宇,卻偏偏與公主長得像弟劲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子姥芥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 大頭教育:專注讓孩子在愛與陪伴中健康成長 小孩兒到底多大適合學(xué)國學(xué)凉唐?有的家長說我從孩子很小的時(shí)候就給他念庸追,他記住記...
    大頭商學(xué)院閱讀 369評論 0 0
  • 今天老師教的是真好啊。佩服台囱,聽的很懂淡溯,題也都做出來了,不過今天也是真累玄坦。血筑。。一天都在研究題煎楣。跟充實(shí)豺总。。择懂。晚安
    馮長有閱讀 92評論 2 0
  • @應(yīng)童老師講過喻喳,自私是自愛的表現(xiàn),一個(gè)人只有先愛自己困曙,自己內(nèi)心的愛被完全滿足了表伦,內(nèi)心富足了才會愛滿自溢流經(jīng)他人谦去,所...
    小寶媽_b9af閱讀 68評論 0 0
  • 寫了一個(gè)線程的demo,名字叫threading.py,在程序中使用了threading.Thread,報(bào)錯(cuò)蹦哼。原因...
    furuiyang閱讀 3,585評論 1 0