一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - 整理CocosCreator常用知識點

整理CocosCreator常用知識點

2022-03-01 16:47代碼猴兒 js教程

這篇文章主要介紹了整理CocosCreator常用知識點,這些知識點,平時幾乎都能用到,希望同學(xué)們看完后,可以自己去試一下,加深印象

一、場景加載

  • cc.director.loadScene(‘場景名稱');//場景跳轉(zhuǎn)
  • cc.director.preloadScene(‘場景名稱');//預(yù)加載場景
  • cc.director.getScene();//獲取當(dāng)前場景

二、查找節(jié)點

1,節(jié)點查找

  • node = cc.find(“Canvas/bg”);//路徑訪問節(jié)點 性能消耗相對較大
  • this.node.getChildByName(‘name');//名稱獲取子節(jié)點 性能消耗較小
  • node.getComponent(cc.Label)//獲取節(jié)點上label屬性值
  • this.node; //當(dāng)前腳本節(jié)點
  • this.node.parent; //父節(jié)點
  • this.node.getChildByTag(100); //通過標(biāo)簽獲取子節(jié)點
  • cc.find(“game/test”,this.node); //通過指定節(jié)點下的路徑獲取節(jié)點
  • this.node.children; //獲取所有子節(jié)點
  • node.getChildren(); //獲取所有子節(jié)點
  • this.node.childrenCount; //獲取子節(jié)點數(shù)量
  • node.getChildrenCount(); //獲取子節(jié)點數(shù)量
  • cc.director.getScene(); //獲取場景主節(jié)點
  • var sprites = this.node.getComponentsInChildren(cc.Label);//遞歸查找自身及所有子節(jié)點中指定類型的組件

2,節(jié)點其他操作

  • cc.instantiate(node);//克隆節(jié)點
  • this.node.parent = cc.find(‘Canvas');//綁定父節(jié)點
  • this.node.addChild(nodeName,zIndex,tag);//添加子節(jié)點,可設(shè)置層級和標(biāo)簽
  • this.node.removeChild(nodeName);//移除子節(jié)點
  • this.node.removeChildByTag (nodeTag);//通過標(biāo)簽移除子節(jié)點
  • this.node.destroy();//銷毀節(jié)點
  • this.node.isValid;//判定節(jié)點是否可用
  • this.node.removeChild(newNode);//移除節(jié)點中指定的子節(jié)點
  • this.node.removeChildByTag(100);//通過標(biāo)簽移除節(jié)點中指定的子節(jié)點
  • this.node.removeAllChildren();//移除所有子節(jié)點
  • this.node.destroyAllChildren();//銷毀所有子節(jié)點

3,停止播放動作以及計時器

this.node.cleanup();//停止所有正在播放的動作和計時器

三、節(jié)點屬性設(shè)置

  • node.getPositionX();或 getPositionY() //X軸或Y軸坐標(biāo)
  • node.getScaleX(); 或getScaleY() //X軸或Y軸縮放比例
  • node.x = 100;//設(shè)置節(jié)點x軸坐標(biāo)
  • node.y = 100;//設(shè)置節(jié)點y軸坐標(biāo)
  • node.setPosition(x,y); //設(shè)置節(jié)點坐標(biāo)
  • node.rotation = 90; //設(shè)置節(jié)點旋轉(zhuǎn)角度
  • node.scaleX = 2; //設(shè)置節(jié)點x軸縮放倍數(shù)
  • node.scaleY = 2; //設(shè)置節(jié)點y軸縮放倍數(shù)
  • node.setScale(2); //設(shè)置節(jié)點整體縮放倍數(shù)
  • node.width = 100; //設(shè)置節(jié)點寬度大小
  • node.height = 100; //設(shè)置節(jié)點高度大小
  • node.setContentSize(100, 100); //設(shè)置節(jié)點寬高尺寸大小
  • node.anchorX = 1; //設(shè)置節(jié)點x軸錨點坐標(biāo)
  • node.anchorY = 0; //設(shè)置節(jié)點y軸錨點坐標(biāo)
  • node.setAnchorPoint(1, 0); //設(shè)置節(jié)點錨點坐標(biāo)
  • node.opacity = 255; //設(shè)置節(jié)點透明度大小(0-255)
  • node.setOpacity(20); //設(shè)置節(jié)點透明度(0~255)
  • node.color = new cc.color(100,100,100,255); //設(shè)置節(jié)點顏色(R,G,B,透明度)
  • cc.isValid(this.label.node) //判定節(jié)點是否存在
  • node.active = false; //關(guān)閉節(jié)點(隱藏節(jié)點)

常駐節(jié)點

  • cc.game.addPersistRootNode(myNode); //常駐節(jié)點(全局變量)
  • cc.game.removePersistRootNode(myNode); //取消常駐節(jié)點

四、節(jié)點動作

  • cc.show()//立即顯示
  • cc.hide ()//立即隱藏
  • cc.toggleVisibility()//顯隱切換
  • cc.fadeIn(1)//漸顯效果
  • cc.fadeOut(1)//漸隱效果
  • cc.delayTime(1)//等待1秒
  • node.runAction(cc.moveTo(1,0,0)); //移動到當(dāng)前節(jié)點(時間(s),X軸坐標(biāo),Y 軸坐標(biāo))
  • node.runAction(cc.scaleTo(1,0.7,0.8));//縮放到當(dāng)前倍數(shù)節(jié)點(時間(s),X軸倍數(shù),Y 軸倍數(shù))
  • node.runAction(cc.rotateTo(1,160,160));//旋轉(zhuǎn)到指定角度(時間(s),X軸角度,Y 軸角度)
  • node.runAction(cc.skewTo(1,5,-5));//變化節(jié)點傾斜度(時間(s),X軸傾斜度,Y 軸傾斜度)
  • node.runAction(cc.fadeTo(2,0));//變化當(dāng)前節(jié)點的透明度(時間(s),透明度)
  • node.runAction(cc.tintTo(2,255,255,0));//變化當(dāng)前節(jié)點顏色(時間,R,G,B)
  • node.stopAllActions();//停止所有動作
  • var action = cc.moveTo(2, 100, 100);// 創(chuàng)建一個動作(moveTo是移動)
  • node.runAction(action);// 執(zhí)行指定動作
  • node.stopAction(action);// 停止指定動作
  • cc.sequence(action1,action2); //按順序連續(xù)執(zhí)行
  • cc.spawn(action1,action2); //同時執(zhí)行
  • cc.repeatForever(cc.sequence(action1,action2)); //一直重復(fù)的動作

五、計時器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
start() {
        // 定時啟動
        // 在2S以后啟動
        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
        }, 2)
 
        //   頻率  次數(shù)+1  延遲
        this.schedule(() => {
            cc.log("schedule")
        }, 1, 3, 5)
 
        // 永遠(yuǎn)執(zhí)行
        let one = this.schedule(() => {
            cc.log("schedule")
        }, 1, cc.macro.REPEAT_FOREVER, 2)
 
 
        // 清除所有定時
        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
            this.unscheduleAllCallbacks()
        }, 5)
 
        let callb = function () {
            cc.log("callb")
        }
        this.schedule(callb, 0.5)  //默認(rèn)永遠(yuǎn)執(zhí)行
 
        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
            this.unschedule(callb)
        }, 2)
    },

六、事件監(jiān)聽

(開始:‘touchstart',移動:‘touchmove',結(jié)束:‘touchend',取消:‘touchcancel')

?
1
2
3
node.on('touchstart',function(event){
    this.doSomething();
},this);
  • event.getID();//獲取觸點的ID
  • event.getLocationX();//獲取觸摸點的坐標(biāo)X
  • event.getLocationY();//獲取觸摸點的坐標(biāo)Y
?
1
2
cc.eventManager.addListener({
    event: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);

七、定義全局變量

window.global= “blobal string”;//任意腳本里可定義全局變量

?
1
2
3
4
window.G = {
    a: null,
    b: null,
};

任意腳本里可訪問全局變量(前提是腳本已執(zhí)行過)
G.a = 0;
G.b = 0;

?
1
2
3
4
5
var something = require(‘something');
cc.game.addPersistRootNode(myNode);//常駐節(jié)點,必須位于層級的根節(jié)點
module.exports = {
     config: 123
}

八、分辨率

獲得設(shè)備分辨率

  • var equipment= cc.director.getWinSizeInPixels()
  • var equipmentW= equipment.width
  • var equipmentH= equipment.height
  • cc.view.getCanvasSize().width;//獲得設(shè)備分辨率的寬度
  • cc.view.getCanvasSize().height;//獲得設(shè)備分辨率的高度
  • cc.director.setDisplayStats(true);//顯示幀數(shù)信息

九、音頻控制

cc.audioEngine.playMusic(this.BGAudio,true);//播放音樂(true循環(huán))
cc.audioEngine.stopMusic()//停止播放
cc.audioEngine.playEffect(this.ClickAudio,false);//播放音效(false代表只播放一次)
cc.audioEngine.stopEffect(音效變量名);//停止指定音效(需要先把音效賦值給變量)
cc.audioEngine.AllEffects();//停止所有音效
cc.audioEngine.setMusicVolume(參數(shù)); //設(shè)置背景音樂的音量(范圍是0到1)
cc.audioEngine.setEffectsVolume(參數(shù)); //設(shè)置音效的音量(范圍是0到1)

十、設(shè)備判斷

  • cc.sys.isNative //是否是本地
  • cc.sys.isBrowser //是否是網(wǎng)頁
  • cc.sys.isMobile //是否是移動系統(tǒng)
  • cc.sys.platform //正在運行的平臺
  • cc.sys.language //當(dāng)前運行系統(tǒng)的語言
  • cc.sys.os //當(dāng)前正在運行的系統(tǒng)
  • cc.sys.OS_IOS //是否是IOS系統(tǒng)
  • cc.sys.OS_ANDROID //是否是android系統(tǒng)
  • cc.sys.OS_WINDOWS //是否是windows系統(tǒng)
  • cc.sys.openURL(‘Http://www.baidu.com'); //打開網(wǎng)頁

十一、監(jiān)聽和發(fā)射事件

  • this.node.pauseSystemEvents(true);//暫停節(jié)點系統(tǒng)事件
  • this.node.resumeSystemEvents(true);//恢復(fù)節(jié)點系統(tǒng)事件
  • this.node.targetOff(this);//移除所有注冊事件

1、觸摸監(jiān)聽

開始'touchstart',
移動'touchmove',
結(jié)束'touchend',
取消'touchcancel'

  • var pos = event.getLocation();//獲取觸摸點的坐標(biāo)(包含X和Y)
  • var x = event.getLocationX();//獲取觸摸點的X坐標(biāo)
  • var y = event.getLocationY();//獲取觸摸點的Y坐標(biāo)
  • var a = event.getID();//獲取觸點的ID

2、鼠標(biāo)監(jiān)聽

鼠標(biāo)按下'mousedown',
移入節(jié)點'mouseenter',
節(jié)點中移動'mousemove',
移出節(jié)點'mouseleave,
‘松開鼠標(biāo)'mouseup'

  • event.getScrollY();//獲取滾輪滾動的 Y 軸距離,只有滾動時才有效
  • event.getLocation();//獲取鼠標(biāo)位置對象,對象包含 x 和 y 屬性

3、輸入框監(jiān)聽

獲得焦點'editing-did-began',
文字變化'text-changed',
失去焦點'editing-did-ended',
按下回車'editing-return'

4,屬性變化監(jiān)聽

位置'position-changed',
寬高 ‘size-changed',
旋轉(zhuǎn)'rotation-changed',
縮放'scale-changed'

5、ScrollView控件監(jiān)聽

滾動中'scrolling',
停止?jié)L動'scroll-ended'

6、用戶自定義事件

監(jiān)聽: this.node.on(“自定義事件名稱”, function(target) , this);

  • this.node.on(‘事件名',function,this);//注冊監(jiān)聽
  • this.node.emit(‘事件名');//發(fā)送監(jiān)聽廣播
  • this.node.off(‘事件名',function,this);//關(guān)閉監(jiān)聽

自派送: emit(“事件名稱”, [detail]); 只有自己能夠收到

?
1
2
3
4
5
6
7
8
9
10
onLoad: function () {
        // 接收者
        // 事件類型,是你自定義的字符串;
        // 回掉函數(shù): function(e) {} e--> cc.Event.EventCustom的實例
        this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e);
        }, this);
        // 派發(fā)者,只能傳遞給自己,不會向上傳遞  
        this.node.emit("pkg_event", { name: "hanbao" });
    },

冒泡派送: dispatchEvent(new cc.Event.EventCustom(“name”, 是否冒泡傳遞));

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
onLoad: function () {
        // 接收者
        // 事件類型,是你自定義的字符串;
        // 回掉函數(shù): function(e) {} e--> cc.Event.EventCustom的實例
        this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e.detail);
        }, this);
    },
    start: function () {
        this.node.emit("pkg_event", { name: "hanbao" });  //這里會派發(fā)一次給自己
        // //這里派發(fā)給全局 發(fā)給這個體系;
        // true/false, true向上傳遞, false不向向上傳遞
        var e = new cc.Event.EventCustom("pkg_event", true);
        e.detail = { name: "haobao" };
        this.node.dispatchEvent(e); 
    },

補充:

  • cc.director.pause();//暫停
  • cc.director.resume();//繼續(xù)
  • cc.director.end();//退出整個應(yīng)用
  • node.getLocalZOrder();//層級獲取
  • node.setLocalZOrder(1);//層級改變
  • cc.find(‘canvas/map' + num)//讀取帶變量的路徑

以上就是整理CocosCreator常用知識點的詳細(xì)內(nèi)容,更多關(guān)于CocosCreator知識點的資料請關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://blog.csdn.net/qq_33302253/article/details/113789934

延伸 · 閱讀

精彩推薦
  • js教程如何在微信小程序中使用less詳解(最優(yōu)方式)

    如何在微信小程序中使用less詳解(最優(yōu)方式)

    這篇文章主要給大家介紹了關(guān)于如何在微信小程序中使用less(最優(yōu)方式)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的...

    九旬10192022-02-16
  • js教程three.js中多線程的使用及性能測試詳解

    three.js中多線程的使用及性能測試詳解

    這篇文章主要給大家介紹了關(guān)于three.js中多線程的使用及性能測試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考...

    郭先生的博客4702021-12-28
  • js教程詳解 TypeScript 函數(shù)聲明和重載

    詳解 TypeScript 函數(shù)聲明和重載

    在 JavaScript 中,函數(shù)是構(gòu)建應(yīng)用的一塊基石,我們可以使用函數(shù)抽離可復(fù)用的邏輯、抽象模型、封裝過程。在TypeScript中,函數(shù)仍然是最基本、最重要的概念...

    前端充電寶7152022-01-05
  • js教程JavaScript實現(xiàn)二叉搜索樹

    JavaScript實現(xiàn)二叉搜索樹

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)二叉搜索樹,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    希魔王的塔羅牌7252022-02-13
  • js教程Javascript中的解構(gòu)賦值語法詳解

    Javascript中的解構(gòu)賦值語法詳解

    這篇文章主要給大家介紹了關(guān)于Javascript中解構(gòu)賦值語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,...

    前端先鋒4952022-02-22
  • js教程如何用CocosCreator實現(xiàn)射擊小游戲

    如何用CocosCreator實現(xiàn)射擊小游戲

    這篇文章主要介紹了如何用CocosCreator實現(xiàn)射擊小游戲,此游戲難度不大,僅作為入門的練手小游戲,一小時就能完成,里面用到的知識很常用,喜歡游戲的...

    戰(zhàn) 勝4892022-03-01
  • js教程微信小程序如何監(jiān)聽全局變量

    微信小程序如何監(jiān)聽全局變量

    這篇文章主要給大家介紹了關(guān)于微信小程序如何監(jiān)聽全局變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)...

    Vegetable_dog7052022-02-25
  • js教程微信小程序?qū)崿F(xiàn)文字滾動

    微信小程序?qū)崿F(xiàn)文字滾動

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)文字滾動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    huangzhin4362022-02-19
主站蜘蛛池模板: 日韩视频在线免费观看 | 91看片淫黄大片欧美看国产片 | 无码一区国产欧美在线资源 | 国产成人无精品久久久久国语 | 亚洲AV永久无码精品老司机蜜桃 | 日韩免费一级毛片 | 逼逼狗影院 | 色四虎| 兽皇日本| 精品精品国产自在久久高清 | 男人女人日皮 | 香蕉精品 | futa文| 私人黄色| 91男人| 国产精品视频久久久 | 成人在线视频在线观看 | 变态女王麻麻小说在线阅读 | 成年人免费在线播放 | 乌克兰精品摘花处破 | 奇米色88欧美一区二区 | 国产xx肥老妇视频奂费 | eeuss免费快捷 | 无人影院在线播放视频 | 美女扒开腿让男生桶爽漫画 | 韩国美女豪爽一级毛片 | 亚洲国产精品第一页 | 范冰冰a级一级特级毛片 | 7777奇米| 国产欧美视频在线观看 | 午夜熟女插插XX免费视频 | 麻豆在线传煤 | 热99精品在线| 久久精品在现线观看免费15 | h片在线看| 精品久久免费视频 | 麻豆天美精东果冻传媒在线 | 男同志与动人物zozotv | 羞羞私人影院可以直接免费观影吗 | 亚洲图片综合网 | 无限在线观看视频大全免费高清 |