美文网首页Cocos Creator
aircraft-war(六)

aircraft-war(六)

作者: 马丁不姓马 | 来源:发表于2017-11-12 20:21 被阅读251次

aircraft-war(六)

Cocos creator/ aircraft-war#

最后的收尾工作

  • 音效
  • 完善游戏开始、结束
  • 优化

完善游戏开始、结束

转场只有一行代码:cc.director.loadScene('SceneName');
别的场景的创建没什么难度,无非就是加加事件,代码参考这里

音效

音频的加载方式只影响 Web 上的加载效果 ,默认的音频资源是WebAudio,这种方式的优点是兼容性好,问题比较少。缺点是占用的内存资源过多

音效有两种使用方式,AudioSource / AudioEngine,具体看这里
音效无非就是加AudioSource组件,然后编写脚本:

cc.Class({
    properties: {
        audio: {
            url: cc.AudioClip,
            default: null
        }
    },

    onLoad: function () {
        this.current = cc.audioEngine.play(this.audio, false, 1);
    },

    onDestroy: function () {
        cc.audioEngine.stop(this.current);
    }
});

注意

        audioSource: {
         // type
         type: cc.AudioSource,
         default: null
     },
            audio: {
            // url
            url: cc.AudioClip,
            default: null
        }

如果使用AudioSource组件,设置会在组件里:


image.png

音效部分完成,代码在这里

优化

对象池的优化

当对象池实例不再被任何地方引用时,引擎的垃圾回收系统会自动对对象池中的节点进行销毁和回收。但这个过程的时间点不可控,另外如果其中的节点有被其他地方所引用,也可能会导致内存泄露,所以最好在切换场景或其他不再需要对象池的时候手动调用 clear 方法来清空缓存节点。

 // 清空缓冲池
    clearAllPool: function () {
        _.forEach(D.commonState.poolObj, function (pool) {
            pool.clear();
        })
    }

代码看这里

组件在层级管理器的层级

不可忽视层级管理器会影响组件的透视效果,所以需要考虑哪些组件该在上面哪些组件被藏在下面比较好。

使用npm包

使用第三方模块
我之前大部分的时间都投入到前端开发中,看到这个仿佛他乡遇故知。什么lodash、moment都可以用了。
现在可以使用yarn来替代npm。
在项目代码中,我使用了lodash这个包,所以需要先安装我们的包。
在项目中,我使用了yarn来代替npm,也可以直接使用npm来安装,都是没有问题的。

如果直接使用yarn,可以先不用部署node环境,如果已经有node环境,也无所谓。
看一下这个yarn的安装

如果想要使用npm,我建议顺便先把node环境配置好,以后想要做网络游泳,也需要该环境。
nvm以及node、npm的安装与使用

等具备以上的需求后,在项目的根目录执行以下命令来安装所需要的包:

// yarn
yarn install

// npm
npm install

页面布局以及适配

UI系统是最基础的部分,虽然不想功能那样,要么0要么1,但是想要游戏能够在更多的设备完美运行,就得潜心研究适配的问题,渲染的问题等。
目前在层级管理器,很多组件都是固定大小的size,但是要想移动设备能够完美运行,就要考虑适配的问题。使用widget挂件可以去适配不同大小的屏幕以确保位置不变。

游戏逻辑

很多问题并不是编码问题,而是逻辑的问题。比如原作代码,暂停与开始的部分,我在临摹的时候,并没有使用。
原作中对对象池的处理,比如,使用炸弹是直接把所有的children从parentNode上remove了,这样的代码设计对于对象池的设计来说并“不正确”,游戏结束,也并没有清空所有的对象池。等等还有很多我与原作思路上的不同。
这并不是说原作的代码不好,相反,原作的代码质量非常高,通过对方的代码,可以看出是个格局很大的人,各方面设计的很全面,而且
抽象的方法,继承等等运用熟练,都很能体现出编程能力的深厚,非常值得学习。在此,再一次感谢原作者“A123asdo11”的代码贡献

后续

本地保存数据这个功能暂时没做,还有其他地方的需要优化,想给游戏的难度进行升级,加入BOSS,后续还想做联机版,想运用一下socket.io来学习一下联机游戏。
当然,还要尝试发布游戏。想发布到web平台,朋友们联机玩玩就好。

相关文章

  • aircraft-war(六)

    aircraft-war(六) Cocos creator/ aircraft-war# 最后的收尾工作 音效 完...

  • aircraft-war(一)

    aircraft-war(一) Game Scene 布局 首先制作场景中的部件,早cocos creator中创...

  • aircraft-war(零)

    在cocos creator的学习过程中,由于群体比较少,所以学习的资源也相对较少。在学习的过程中,也缺少很好的“...

  • aircraft-war(三)

    aircraft-war(三) 上一章的内容务必搞懂再进入这一步!这部分先来实现一个简单的功能,Hero接触道具然...

  • aircraft-war(四)

    aircraft-war(四) 敌机分为三种类型,所以需要三种Prefab,分别有自己的爆炸动画,可以共用一套脚本...

  • aircraft-war(二)

    aircraft-war(二) 双弹道子弹 双弹道子弹和弹道子弹差别并不大,实现起来也不难。先来找张图分析一下: ...

  • aircraft-war(五)

    aircraft-war(五) 大体上,这个游戏已经有了最初设计的样子,还差: Hero被敌机撞击会坠毁 游戏开始...

  • 【乡土】六  六

    四姐端着一大锅猪食,吃力地举过猪圈的围墙,回头骂六六,你就是个贾宝玉!六六一边吃着槽子糕,嘻皮笑脸地问,谁是贾宝玉...

  • 六月六

    晚上吃了山东印象的羊肉汤这次超多羊肉啊……晚上普拉提很给力,基本动作很重要,教练说没有做一个俯卧撑一个月想塑形不可...

  • 六妖六随笔

    今天是六月十六号,在读《影响力》读到兄弟会的一些东西时,突然想要写点什么,就叫它六妖六随笔吧。 兄弟会是美国大...

网友评论

本文标题:aircraft-war(六)

本文链接:https://www.haomeiwen.com/subject/edpomxtx.html