预制体的作用
1.批量创建相同类型的节点
可以在层级管理器新建节点设置好拖到prefab
2.3版本实例化节点的预制体
extends: cc.Component, properties: {
// 用于实例化节点的预制体 prefab:{
type: cc.Prefab,
default: null}
例如:消灭星星中使用的预制体:源码
https://github.com/cocos-creator/tutorial-first-game
这些小星星出现的位置随机,运动的轨迹随机,那么只需要写一个小星星,使之变成预置资源,内容就是随机位置产生小星星,运动轨迹随机,然后销毁,再在游戏场景里不断调用就可以了。
预置资源star.js里,写好逻辑,在游戏脚本game.js里调用,代码如下:
//instantiate意为克隆,此句为将预置资源PreFab克隆出一个节点,放在图层第2层,赋值给新声明的变量newStar
var newStar = cc.instantiate(this.statPreFab,2)
//在画布中放入该节点
this.node.addChild(newStar)
//随机起始位置
newStar.setPosition(this.getNewStarPosition())
//获取PreFab内的节点变量me和gameOver,将本脚本内获取的节点赋值过去
newStar.getComponent("star").me = this.ball.node
newStar.getComponent("star").gameOver = this.gameOver
对于常用的对象和物体大量的分配与释放,可以考虑 使用节点池来进行缓存;