cocos creator小白摸索之路(3)
程序员文章站
2024-03-16 16:40:40
...
微信飞机大战,只为熟悉cocos creator的属性方法,做了个简单的雏形
1.取节点的子节点用【getChillByName()】,也可以用【cc.find()】,取节点上的组件用【getComponent()】
2.用对象池可以减少性能损耗,比如在hero.js定义一个子弹的对象池
createBulletPool: function() {
this.bulletPool = new cc.NodePool();
let initCount = 7;
for (let i = 0; i < initCount; i++) {
let bullet = cc.instantiate(this.bulletPrefab);
this.bulletPool.put(bullet);
}
},
这样在bullet.js中如果要讲不用的子弹放回对象池,记得要停止子弹的行为
removeSelf: function() {
this.node.stopAllActions();
this.node.getParent().getChildByName("hero").getComponent('hero').bulletPool.put(this.node);
},
由于子弹会动,所以放回对象池的子弹位置什么的属性会变化,所以在制造子弹的时候要初始化子弹
hero.js:
createBullet: function() {
let bullet = null;
if (this.bulletPool.size() > 0) {
bullet = this.bulletPool.get();
} else {
bullet = cc.instantiate(this.bulletPrefab);
}
bullet.parent = this.node.getParent();
bullet.getComponent('bullet').init();
},
bullet.js:
init () {
this.setPos();
this.startMove();
},
在敌机爆炸上,和子弹结束处理一样,先停止行为和动画播放,在将敌机的sprite的spriteFrame属性设置下成最初敌机的图片
3.要保存记录,这个就需要用个json文件,只写了个实时得分
point.json:
{
"curPoint": 0
}
在子弹和敌机碰撞时
enemy.js:
onCollisionEnter: function(other, self) {
if (other.node.group == 'bullet') {
this.getComponent(cc.BoxCollider).enabled = false;
this.getComponent(cc.Animation).play();
let node = this.node.getParent().getComponent('main');
node.point += 100;
cc.sys.localStorage.setItem('curPoint', JSON.stringify(node.point));
}
},
在主界面加一个label来显示分数
main.js:
update () {
let curPoint = cc.sys.localStorage.getItem('curPoint');
this.node.getParent().getChildByName('point').getComponent(cc.Label).string = "分数:" + curPoint;
},
4.schedule函数内this指的是该组件,不需要用【bind()】等,来调用回调函数
5.let 和 var的区别,其实也没怎么弄懂,我是块区域我就用let比如【for()】里面,或者在一个小函数里面,如果我要定义的值会影响里面的嵌套函数啥的就会用var,网上对这个说明很多,这是一个【https://www.jianshu.com/p/9f7f053f7204 】
6.在 cc.callFunc 中不应该停止自身动作,由于动作是不能被立即删除,如果在动作回调中暂停自身动作会引发一系列遍历问题,导致更严重的 bug【https://docs.cocos.com/creator/manual/zh/scripting/actions.html?h=更严重 】
推荐阅读
-
cocos creator小白摸索之路(3)
-
荐 麒麟子Cocos Creator 3D研究笔记三:角色换装(无动画)
-
用 shader effect 实现雨滴落水效果!Cocos Creator 3D !
-
cocos creator 3D | 拇指投篮 | 3D项目入门实战
-
初探雾效果!shader 源码分析与讲解! Cocos Creator 3D Shader Fog !
-
瞄准器!3D入门实战!拇指射箭!Cocos Creator 3D !
-
蚂蚁庄园运动会登山赛!3d项目入门实战!Cocos Creator 3D!
-
cocos creator 3D | 拇指射箭
-
cocos creator实例--3D 足球
-
不好意思,我膨胀了!shader 入门精要!Cocos Creator 3D Shader !