Cocos Creator 原始碼解讀:引擎啟動與主迴圈
阿新 • • 發佈:2020-11-05
# 前言
## 預備
> 不知道你有沒有想過,假如把遊戲世界比作一輛汽車,那麼這輛“汽車”是如何啟動,又是如何持續運轉的呢?
如題,本文的內容主要為 Cocos Creator 引擎的**啟動流程**和**主迴圈**。
而在主迴圈的內容中還會涉及到:**元件的生命週期和計時器、緩動系統、動畫系統和物理系統等...**
**本文會在巨集觀上為大家解讀主迴圈與各個模組之間的關係**,對於各個模組也會簡單介紹,但不會深入到模組的具體實現。
因為如果把每個模組都“摸”一遍,那這篇文章怕是寫不完了。
## Go!
希望大家看完這篇文章之後能夠更加了解 Cocos Creator 引擎。
同時也希望本文可以起到“師傅領進門”的作用,大家一起加油修行鴨~
另外《原始碼解讀》系列(應該)會持續更新,如果你想要皮皮來解讀解讀引擎的某個模組,也歡迎留言告訴我,我...我考慮下哈哈哈~
*本文以 Cocos Creator 2.4.3 版本為參考。*
---
# 正文
## 啟動流程
### index.html
> 對於 Web 平臺 index.html 檔案就是絕對的起點。
>
在預設的 index.html 檔案中,定義了遊戲啟動頁面的佈局,並且還有一段立即執行的程式碼。
這裡擷取檔案中一部分比較關鍵的程式碼:
```javascript
// 載入引擎指令碼
loadScript(debug ? 'cocos2d-js.js' : 'cocos2d-js-min.ec334.js', function () {
// 是否開啟了物理系統?
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
// 載入物理系統指令碼並啟動引擎
loadScript(debug ? 'physics.js' : 'physics-min.js', window.boot);
} else {
// 啟動引擎
window.boot();
}
});
```
上面這段程式碼主要用於載入引擎指令碼和物理系統指令碼,指令碼載入完成之後就會呼叫 main.js 中定義的 `window.boot()` 函式。
>