自學(xué)cocos creator過程中遇到的一些問題筆記
一個精準(zhǔn)度要求不高的音樂文字游戲。使用整句歌詞+時間點配置,達到歌詞同步展示并可點擊單字的效果
js計時器setInterval和timecocos計時器schedule在各個平臺上由于幀率、延遲等計時效果有差異,不能精準(zhǔn)同步,無法達到要求。
cocos提供了audioEngine.getCurrentTime()可以獲取音樂播放的實時進度,但是在ios系統(tǒng),音頻首次加載播放時,獲取到的精度間隔有浮動,需要提前預(yù)熱音頻文件:既先播放一次該音頻,并且確保isPlaying==true后再次進行播放。(預(yù)熱時可以設(shè)定音量=0)
ios微信小游戲平臺不支持ogg格式的音頻文件
停止音頻并立即播放,或者播放音頻時切換播放另一個音頻,有可能導(dǎo)致播放失效。解決辦法是設(shè)定延遲200ms后再進行播放
一個用于現(xiàn)有app中內(nèi)嵌的h5小游戲,要求使用dsbridge進行通信,并且需要原生傳遞輸入?yún)?shù)給h5游戲
cocos creator用ts開發(fā)時,需要將第三方庫js文件拷貝至asset資源目錄下
使用第三方庫js文件:let ds = require("dsbridge");
在測試通信延遲時,在游戲內(nèi)打印當(dāng)前時間,并且接受原生傳遞的原生當(dāng)前時間:
nativeToCocos(msg:string){
? ? ? ? ? console.log(new data().getTime());
? ? ? ? ? console.log(msg)
?}
cocos creator3.x打包微信小游戲,去除啟動頁:
修改打包文件中的first-screen.js:去掉tick方法中的draw調(diào)用
function tick() {
? ? rafHandle = requestAnimationFrame(() => {
? ? ? ? // draw();
? ? ? ? tick();
? ? ? ? if (afterTick) {
? ? ? ? ? ? afterTick();
? ? ? ? ? ? afterTick = null;
? ? ? ? }
? ? });
}