cocoscreator基本操作

原文地址:https://blog.csdn.net/yj_1989/article/details/83067709

1.場景加載
cc.director.loadScene('場景名稱');//場景跳轉
cc.director.preloadScene('場景名稱');//預加載場景

cc.director.getScene();//獲取當前場景

2.獲取節點
var node = cc.find("Canvas/bg");//通過訪問路徑來獲取節點

var a = this.node.getChildByName('name');//通過名字獲取子節點
node.getComponent(cc.Label).string = 'abc';//獲取節點上的組件值

var a = cc.find("Canvas/bg").getComponent(cc.Sprite);//通過訪問路徑來獲取節點,及獲取該節點的指定組件

this.node .getChildByName('節點名稱').getComponent(cc.Label)//通過節點名獲取子節點,獲取該節點指定組件

var a = this.node;//獲取當前腳本所在的節點
var a = this.node.parent;//獲取父節點
var a = this.node.getChildByTag(1001);//通過標籤獲取子節點
var a = cc.find("bg/score",this.node);//通過指定節點下的路徑獲取節點

var a = this.node.children;//獲取所有子節點
var a = this.node.childrenCount;//獲取子節點數量
var a = cc.director.getScene();//獲取場景主節點

var a = cc.instantiate(node);//克隆節點
this.node.parent = cc.find('Canvas');//綁定父節點
this.node.addChild(nodeName,zIndex,tag);//添加子節點,可設置層級和標籤
this.node.removeChild(nodeName);//通過名字移除子節點
this.node.removeChildByTag (nodeTag);//通過標籤移除子節點
this.node.destroy();//銷燬節點
this.node.isValid;//判定節點是否可用

this.node.removeChild(newNode);//移除節點中指定的子節點
this.node.removeChildByTag(1001);//通過標籤移除節點中指定的子節點
this.node.removeAllChildren();//移除所有子節點
this.node.destroyAllChildren();//銷燬所有子節點
this.node.cleanup();//停止所有正在播放的動作和計時器
var sprites = this.node.getComponentsInChildren(cc.Label);//遞歸查找自身及所有子節點中指定類型的組件

3.獲取節點位置,設置節點
var a = node.getPositionX();或 getPositionY() //獲取節點的X軸或Y軸座標
var a = node.getScaleX(); 或getScaleY() //獲取節點的X軸或Y軸縮放比例
node.x = 100;//設置節點x軸座標
node.y = 100;//設置節點y軸座標
node.setPosition(x,y); //設置節點座標
node.rotation = 90; //設置節點旋轉角度
node.scaleX = 2; //設置節點x軸縮放倍數
node.scaleY = 2; //設置節點y軸縮放倍數
node.setScale(2); //設置節點整體縮放倍數
node.width = 100; //設置節點寬度大小
node.height = 100;  //設置節點高度大小
node.setContentSize(100, 100); //設置節點寬高尺寸大小
node.anchorX = 1; //設置節點x軸錨點座標
node.anchorY = 0; //設置節點y軸錨點座標
node.setAnchorPoint(1, 0); //設置節點錨點座標
node.opacity = 128; //設置節點透明度大小(0-255)
node.setOpacity(20); //設置節點透明度(0~255)
node.color = new cc.color(100,100,100,255); //設置節點顏色(R,G,B,透明度)
if (cc.isValid(this.label.node) ) //判定節點是否存在
node.destroy(); //銷燬節點
this.cannons = [];
this.cannons = node.getChildren(); //獲取所有子節點
this.cannons = node.getChildrenCount(); //獲取子節點數量
node.active = false; //關閉節點(隱藏節點)
cc.game.addPersistRootNode(myNode); //常駐節點(全局變量)
cc.game.removePersistRootNode(myNode); //取消常駐節點

4.動作操作

cc.show()//立即顯示
cc.hide ()//立即隱藏
cc.toggleVisibility()//顯隱切換
cc.fadeIn(1)//漸顯效果
cc.fadeOut(1)//漸隱效果
cc.delayTime(1)//等待1秒
node.runAction(cc.moveTo(1,0,0)); //移動到當前節點(時間(s),X軸座標,Y 軸座標)
node.runAction(cc.scaleTo(1,0.7,0.8));//縮放到當前倍數節點(時間(s),X軸倍數,Y 軸倍數)
node.runAction(cc.rotateTo(1,160,160));//旋轉到指定角度(時間(s),X軸角度,Y 軸角度)
node.runAction(cc.skewTo(1,5,-5));//變化節點傾斜度(時間(s),X軸傾斜度,Y 軸傾斜度)

node.runAction(cc.fadeTo(2,0));//變化當前節點的透明度(時間(s),透明度)

node.runAction(cc.tintTo(2,255,255,0));//變化當前節點顏色(時間,R,G,B)
node.stopAllActions();//停止所有動作
//自定義動作
var action = cc.moveTo(2, 100, 100);// 創建一個移動動作
node.runAction(action);// 執行動作
node.stopAction(action);// 停止一個動作

cc.sequence(action1,action2); //按順序連續執行,先action1,後action2

cc.spawn(action1,action2); //同時執行,action1和action2一起執行

cc.repeatForever(cc.sequence(action1,action2)); //一直重複括號裏的動作

 

5.計時器
//只用1次的計時器,2秒後執行
        this.scheduleOnce(function(){
            //一條或多條執行語句  

        },2); //(function(){},時間(s))

//每隔5秒執行1次
        this.schedule(function(){
            //一條或多條執行語句  

        },5);

//計算多次的計時器(1秒後,以0.1秒的執行間隔,執行10次)
        this.schedule(function(){
            //一條或多條執行語句

        },0.1,10,1); //(function(){},間隔時間,次數,多久後開始)

this.unscheduleAllCallbacks(this);//停止某組件的所有計時器

//自定義定時器執行內容(相比常規使用的定時器優勢是:方便隨時開啓或關閉)
var cb= function(){
    //do something
};
this.schedule(cb,1);//啓動定時器
this.unschedule(cb);//取消定時器


6.事件監聽

(開始:'touchstart',移動:'touchmove',結束:'touchend',取消:'touchcancel')
node.on('touchstart',function(event){
    this.doSomething();
},this);  
var a = event.getID();//獲取觸點的ID
var a = event.getLocationX();//獲取觸摸點的座標X
var b = event.getLocationY();//獲取觸摸點的座標Y

cc.eventManager.addListener({
            event: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);


7.定義全局變量

window.DEFAULT_IP = "192.168.1.1";//任意腳本里可定義全局變量
//任意腳本里可定義全局變量
window.G = {
    a: null,
    b: null,
};
//任意腳本里可訪問全局變量(切記定義全局變量的那個腳本已執行過)
G.a = 0;
G.b = 0;

var something = require(‘something’);

cc.game.addPersistRootNode(myNode);//常駐節點,必須位於層級的根節點(也可算全局節點吧)

module.exports = {

         config: 123

}

8.分辨率
//獲得設備分辨率
var b = cc.director.getWinSizeInPixels()
var bx = b.width
var by = b.height

cc.view.getCanvasSize().width;//獲得設備分辨率的寬度
cc.view.getCanvasSize().height;//獲得設備分辨率的高度
cc.director.setDisplayStats(true);//顯示幀數信息


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

10.存檔操作
cc.sys.localStorage.setItem('存儲標識名',變量名);//存儲存檔數據
var a = cc.sys.localStorage.getItem('存儲標識名');//讀取存檔數據
cc.sys.localStorage.removeItem('存儲標識名');//擦除存檔數據
userData = {
    name: 'Tracer',
    level: 1,
    gold: 100
};
cc.sys.localStorage.setItem('userData', JSON.stringify(userData));//存取複雜對象數據
var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));//讀取複雜對象數據

11.判斷平臺

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

12.監聽和發射事件

this.node.pauseSystemEvents(true);//暫停節點系統事件
this.node.resumeSystemEvents(true);//恢復節點系統事件
this.node.targetOff(this);//移除所有註冊事件

觸摸監聽:開始'touchstart',移動'touchmove',結束'touchend',取消'touchcancel'
var pos = event.getLocation();//獲取觸摸點的座標(包含X和Y)
var x = event.getLocationX();//獲取觸摸點的X座標
var y = event.getLocationY();//獲取觸摸點的Y座標
var a = event.getID();//獲取觸點的ID

鼠標監聽:鼠標按下'mousedown',移入節點'mouseenter',節點中移動'mousemove',移出節點'mouseleave,'鬆開鼠標'mouseup'
var a = event.getScrollY();//獲取滾輪滾動的 Y 軸距離,只有滾動時纔有效
var a = event.getLocation();//獲取鼠標位置對象,對象包含 x 和 y 屬性

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

屬性變化監聽:位置'position-changed',寬高 'size-changed',旋轉'rotation-changed',縮放'scale-changed'

ScrollView控件監聽:滾動中'scrolling',停止滾動'scroll-ended'

用戶自定義事件:
this.node.on('事件名',function,this);//註冊監聽
this.node.emit('事件名');//發送監聽廣播
this.node.off('事件名',function,this);//關閉監聽

//註冊帶參數監聽
this.node.on('事件名',function(event){

“具體方法函數內容”

},this);
//發送帶參數的監聽
this.node.emit('事件名',{id:1001});
cc.eventManager.addListener(listener, node);//添加事件
cc.eventManager.removeListener((listener);//移除事件


13.其他操作
cc.director.pause();//暫停
cc.director.resume();//繼續
cc.director.end();//退出整個應用
cc.log(變量)  或 console.log(something);//輸出想要的信息
let self = this;//鎖定當前使用的this指向
node.getLocalZOrder();//層級獲取
node.setLocalZOrder(1);//層級改變
cc.find('canvas/map' + num)//讀取帶變量的路徑
cc.sys.openURL('Http://www.baidu.com');//打開網頁
————————————————
版權聲明:本文爲CSDN博主「菜___鳥」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yj_1989/article/details/83067709

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章