用cocos creator制作一個(gè)小游戲(2) -- 預(yù)制體Prefab

關(guān)于預(yù)制體的介紹官網(wǎng)有相關(guān)闡述:
http://docs.cocos.com/creator/manual/zh/asset-workflow/prefab.html

關(guān)于對(duì)象池的官網(wǎng)相關(guān)闡述:
http://docs.cocos.com/creator/manual/zh/scripting/pooling.html

下面我們開始制作預(yù)制體.

  1. 將資源管理器的圖片 拖到 層級(jí)管理器, 生成了pipe
image.png

然后創(chuàng)建一個(gè)空節(jié)點(diǎn)命名成pipe_prefab作為父節(jié)點(diǎn), 將pipe拖到pipe_prefab中作為子節(jié)點(diǎn), 然后再復(fù)制一個(gè).


image.png

現(xiàn)在倆個(gè)子節(jié)點(diǎn)疊加在一起,將倆個(gè)子節(jié)點(diǎn)的錨點(diǎn)Anchor的Y值設(shè)為0, 再將bottom節(jié)點(diǎn)的Scale的Y值設(shè)為-1. 效果如下


image.png
image.png

這時(shí)將pipe_prefab拖到res/prefab目錄下, 這時(shí)prefab已初步做好, 可以將層級(jí)管理器的pipe_prefab刪掉了


image.png

雙擊res/prefab/pipe_prefab, 再分別選中top節(jié)點(diǎn)和bottom節(jié)點(diǎn), 給top和bottom節(jié)點(diǎn)添加boxCollider,使它具有碰撞屬性


image.png

然后選中pipe_prefab,添加boxCollider,并設(shè)置size 和offset, 這個(gè)碰撞是用于后續(xù)統(tǒng)計(jì)分?jǐn)?shù)的.


image.png

我們給pipe添加一個(gè)腳本,用來控制管道.


image.png

cc.Class({
    extends: cc.Component,

    start () {
        this.bottom = this.node.getChildByName("bottom");
        this.bottom.y = -300*Math.random();

        this.top = this.node.getChildByName("top");
        this.top.y = this.bottom.y + 200 + Math.random()*400;
    },

    update (dt) {
        this.node.x -= 100*dt;
        if(this.node.getBoundingBoxToWorld().xMax < 0) {
            D.pipeManager.recyclePipe(this.node);
        }
    },
});

D是全局變量, 定義在Global.js文件中

window.Global = {
    State : cc.Enum({
        Run : 0,
        Over: 1
    })
};

window.D = {
    gameController  : null,
    pipeManager : null,
};

再添加一個(gè)管道m(xù)anager, 用來管理pipe,每當(dāng)pipe的x坐標(biāo)小于0px,就回收它


image.png
const Pipe = require('Pipe');

cc.Class({
    extends: cc.Component,

    properties: {
        pipePrefab: cc.Prefab,
        addInterval : 0
    },

    onLoad () {
        D.pipeManager = this;
        this.pipePool = new cc.NodePool();
    },

    start () {
        this.addPipe(0,600);
        this.addPipe(0,1000);
        this.addPipe(0,1400);
        this.schedule(this.addPipe, this.addInterval);
    },

    addPipe (time,x) {
        if(x == null)
            x = 1400;
        let pipe = this.pipePool.get();
        if(pipe == null) {
            pipe = cc.instantiate(this.pipePrefab);
        }

        pipe.active = true;
        pipe.x = x;
        this.node.addChild(pipe);
    },

    recyclePipe(pipe) {
        pipe.active = false;
        this.pipePool.put(pipe);
    }
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末时鸵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子透绩,更是在濱河造成了極大的恐慌,老刑警劉巖哪轿,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚袍,死亡現(xiàn)場(chǎng)離奇詭異侧蘸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偎捎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蠢终,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茴她,你說我怎么就攤上這事寻拂。” “怎么了丈牢?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵祭钉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我己沛,道長(zhǎng)慌核,這世上最難降的妖魔是什么距境? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮垮卓,結(jié)果婚禮上垫桂,老公的妹妹穿的比我還像新娘。我一直安慰自己粟按,他們只是感情好诬滩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灭将,像睡著了一般疼鸟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庙曙,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天空镜,我揣著相機(jī)與錄音,去河邊找鬼矾利。 笑死姑裂,一個(gè)胖子當(dāng)著我的面吹牛馋袜,可吹牛的內(nèi)容都是我干的男旗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欣鳖,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼察皇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泽台,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤什荣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后怀酷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稻爬,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蜕依,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桅锄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡样眠,死狀恐怖友瘤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情檐束,我是刑警寧澤辫秧,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站被丧,受9級(jí)特大地震影響盟戏,放射性物質(zhì)發(fā)生泄漏绪妹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一柿究、第九天 我趴在偏房一處隱蔽的房頂上張望喂急。 院中可真熱鬧,春花似錦笛求、人聲如沸廊移。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狡孔。三九已至,卻和暖如春蜂嗽,著一層夾襖步出監(jiān)牢的瞬間苗膝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工植旧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辱揭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓病附,卻偏偏與公主長(zhǎng)得像问窃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子完沪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354