自学cocos creator过程中遇到的一些问题笔记
一个精准度要求不高的音乐文字游戏。使用整句歌词+时间点配置,达到歌词同步展示并可点击单字的效果
js计时器setInterval和timecocos计时器schedule在各个平台上由于帧率、延迟等计时效果有差异,不能精准同步,无法达到要求。
cocos提供了audioEngine.getCurrentTime()可以获取音乐播放的实时进度,但是在ios系统,音频首次加载播放时,获取到的精度间隔有浮动,需要提前预热音频文件:既先播放一次该音频,并且确保isPlaying==true后再次进行播放。(预热时可以设定音量=0)
ios微信小游戏平台不支持ogg格式的音频文件
停止音频并立即播放,或者播放音频时切换播放另一个音频,有可能导致播放失效。解决办法是设定延迟200ms后再进行播放
一个用于现有app中内嵌的h5小游戏,要求使用dsbridge进行通信,并且需要原生传递输入参数给h5游戏
cocos creator用ts开发时,需要将第三方库js文件拷贝至asset资源目录下
使用第三方库js文件:let ds = require("dsbridge");
在测试通信延迟时,在游戏内打印当前时间,并且接受原生传递的原生当前时间:
nativeToCocos(msg:string){
console.log(new data().getTime());
console.log(msg)
}
cocos creator3.x打包微信小游戏,去除启动页:
修改打包文件中的first-screen.js:去掉tick方法中的draw调用
function tick() {
rafHandle = requestAnimationFrame(() => {
// draw();
tick();
if (afterTick) {
afterTick();
afterTick = null;
}
});
}