前言
Cocos Creator的官方文件還是非常友好的,有中英文兩個版本。
【強烈建議】 初學者先把官方文件看一遍。裡面還包含了很多demo。
官方文件地址 :docs.cocos.com/creator/man…。
今天主要先帶大家簡單熟悉一下Cocos Creator的開發流程。
~~~接下來我們來完成簡單的拖拽小遊戲吧
完整程式碼
開發工具
- Cocos Creator
- Visual Studio Code
Visual Studio Code配置文件地址docs.cocos.com/creator/man…
正文
1、使用Cocos Creator建立一個新專案
2、在assets中建立一個場景,取名“Drag”
3、雙擊我們的場景。
4、準備一張圖片素材,並放到assets中。
5、把素材拖動到層級管理器中,並放到Canvas節點下6、建立一個js檔案
7、把js新增到場景下
8、用Visual Studio Code開啟我們的專案
9、編寫指令碼,在properties增加一個屬性carNode
***
properties: {
carNode: {
type: cc.Node,
default: null
}
},
***
複製程式碼
10、回到Cocos Creator,發現剛新增的屬性已經出現在了編輯器中。
11、將小車節點拖動到該屬性值的位置
12、回到Visual Studio Code,為小車節點新增拖動事件
***
onLoad () {
//獲取小車節點
let { carNode } = this;
//新增變數判斷使用者當前滑鼠是不是處於按下狀態
let mouseDown = false;
//當使用者點選的時候記錄滑鼠點選狀態
carNode.on(cc.Node.EventType.MOUSE_DOWN, (event)=>{
mouseDown = true;
});
//只有當使用者滑鼠按下才能拖拽
carNode.on(cc.Node.EventType.MOUSE_MOVE, (event)=>{
if(!mouseDown) return;
//獲取滑鼠距離上一次點的資訊
let delta = event.getDelta();
//移動小車節點
carNode.x = carNode.x + delta.x;
carNode.y = carNode.y + delta.y;
});
//當滑鼠抬起的時候恢復狀態
carNode.on(cc.Node.EventType.MOUSE_UP, (event)=>{
mouseDown = false;
});
},
***
複製程式碼
13、切回到Cocos Creator,點選“執行”按鈕,Cocos Creator會幫你開啟瀏覽器並且載入當前遊戲
14、試著拖動一下小車試試小車是不是已經可以動起來了
15、有同學可能已經發現小車現在會被拖動到螢幕外邊,我們可以試著加一個限定條件限定小車只能在螢幕內拖動試試,以下是實現程式碼:
***
onLoad () {
//獲取小車節點
let { carNode } = this;
//新增變數判斷使用者當前滑鼠是不是處於按下狀態
let mouseDown = false;
//當使用者點選的時候記錄滑鼠點選狀態
carNode.on(cc.Node.EventType.MOUSE_DOWN, (event)=>{
mouseDown = true;
});
//只有當使用者滑鼠按下才能拖拽
carNode.on(cc.Node.EventType.MOUSE_MOVE, (event)=>{
if(!mouseDown) return;
//獲取滑鼠距離上一次點的資訊
let delta = event.getDelta();
//增加限定條件
let minX = -carNode.parent.width / 2 + carNode.width / 2;
let maxX = carNode.parent.width / 2 - carNode.width / 2;
let minY = -carNode.parent.height / 2 + carNode.height / 2;
let maxY = carNode.parent.height / 2 - carNode.height / 2;
let moveX = carNode.x + delta.x;
let moveY = carNode.y + delta.y;
//控制移動範圍
if(moveX < minX){
moveX = minX;
}else if(moveX > maxX){
moveX = maxX;
}
if(moveY < minY){
moveY = minY;
}else if(moveY > maxY){
moveY = maxY;
}
//移動小車節點
carNode.x = moveX;
carNode.y = moveY;
});
//當滑鼠抬起的時候恢復狀態
carNode.on(cc.Node.EventType.MOUSE_UP, (event)=>{
mouseDown = false;
});
},
***
複製程式碼
16、回到Cocos Creator點選“重新整理”按鈕,然後再試試看現在小車是不是隻能再螢幕內拖動了
注意點
- 如果想在手機上看到效果圖,需要把對應的滑鼠事件改成touch事件
by:Tao