日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocos2dx游戏开发——微信打飞机学习笔记(五)——BackgroundLayer的搭建

發(fā)布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2dx游戏开发——微信打飞机学习笔记(五)——BackgroundLayer的搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、創(chuàng)建文件~

?????? 文件名:BackgroundLayer.h

???????????????????? BackgroundLayer.cpp

?????? 架構(gòu)就跟前面的一樣,我就直接進(jìn)入正題 啦,而且github有完整代碼,歡迎下載~

二、創(chuàng)建滾動的背景

?????? 為毛要創(chuàng)建滾動的背景呢= =,因為我們要控制飛機(jī),但總得有往前飛的感覺,所以呢~你懂的~

然后方法就很簡單啦,就是用2張圖片,當(dāng)然是上下能對接起來的那種,然后不停的滾那滾就好啦~

方法呢,首先在.h文件中進(jìn)行聲明

void moveBackground(float dt); //滾動圖片的函數(shù)Sprite *_background1; //背景圖片Sprite *_background2;

然后,我們就默默實現(xiàn)下~

首先在init()中添加~

_background1 = Sprite::createWithSpriteFrameName("background.png");_background1->setAnchorPoint(Vec2::ZERO);_background1->setPosition(Vec2::ZERO);this->addChild(_background1);_background2 = Sprite::createWithSpriteFrameName("background.png");_background2->setAnchorPoint(Vec2::ZERO);_background2->setPosition(Vec2(_background1->getPositionX(), _background1->getPositionY() + _background1->getContentSize().height));this->addChild(_background2);

這樣就初始化好那個圖片的位置啦啦~

然后就是關(guān)鍵的滾動的函數(shù)~

void BackgroundLayer::moveBackground(float dt) {if (_background2->getPositionY() <= 0){_background1->setPositionY(0);}_background1->setPositionY(_background1->getPositionY() - 2);_background2->setPositionY(_background1->getPositionY() + _background1->getContentSize().height - 2);}

簡單吧~,就是一會我們不斷的調(diào)用這個函數(shù),然后每次調(diào)用就讓圖片往下走,一旦第一張出了屏幕,就立馬放回原來的位置,就是這么簡單~

然后就是關(guān)鍵的關(guān)鍵啦~

this->schedule(schedule_selector(BackgroundLayer::moveBackground), 1.0 / 60);

別看就之后一行代碼~,這是cocos封裝好的,要不很麻煩的~,現(xiàn)在會用就好啦,這么寫,就是在游戲過程中會以1 /60的間隔調(diào)用這個函數(shù),這樣子的話,我們?nèi)搜劭雌饋砭褪莿赢嫷母杏X~,大工告成

?

三、最后的最后

?????? 你發(fā)現(xiàn)運行后沒有反應(yīng)~,那是因為你還沒有加入到Scene中,而且會有很多層,所以我們在GameScene中添加一個函數(shù)

//.h void initLayer();BackgroundLayer *_background;

?

//.cpp void GameScene::initLayer() {//add background;_background = BackgroundLayer::create();this->addChild(_background); }

四~效果圖~

?

總結(jié)

以上是生活随笔為你收集整理的cocos2dx游戏开发——微信打飞机学习笔记(五)——BackgroundLayer的搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。