一 CC常用方法
-
创建节点
var bg = new cc.Node()
-
添加组件
var sprite = bg.addComponent(cc.Sprite)//添加组件 var scp = pendant.addComponent('Pendant')//添加脚本
-
获取屏幕宽高
this.pScreenWidth = cc.view.getVisibleSize().width; this.pScreenHeight = cc.view.getVisibleSize().height;
值类型
- 数值(Number)
- 向量(Vec2):
cc.v2(positionX,positionY);
- 字符串(String):直接在文本框里用键盘输入字符串,字符串输入控件分为单行和多行两种,多行文本框可以按回车换行。
- 布尔(Boolean):以复选框的形式来编辑,选中状态表示属性值为
true
,非选中状态表示false
。 - 枚举(Enum):以下拉菜单的形式编辑,点击枚举菜单,然后从弹出的菜单列表里选择一项,即可完成枚举值的修改。
- 颜色(Color)
动作系统
从哪里移动
cc.moveBy(this.jumpDuration, cc.v2(0, this.jumpHeight))
移动曲线
{ActionInterval}.easing(cc.easeCubicActionOut());
动作回调
cc.callFunc(function,target);
同时运动
var action = cc.spawn(cc.jumpBy(2, cc.v2(300, 0), 50, 4), cc.rotateBy(2, 720));
运动序列
cc.repeatForever(cc.sequence(jumpUp, jumpDown));
运行动作序列
this.node.runAction(this.jumpAction);
节点开启关闭
this.enabled = false;
计算两点之间距离
var dist = APosition.sub(BPosition).mag();//sub向量减法,mag取向量长度
音效
音效资源类型
jumpAudio: {
default: null,
type: cc.AudioClip
},
播放音效
cc.audioEngine.playEffect(this.jumpAudio, false);
输入监听
键盘监听
// 初始化键盘输入监听
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
// 取消键盘输入监听
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
onKeyDown (event) {
switch(event.keyCode) {
case cc.macro.KEY.a:
case cc.macro.KEY.left:
break;
case cc.macro.KEY.d:
case cc.macro.KEY.right:
break;
}
},
onKeyUp (event) {
switch(event.keyCode) {
case cc.macro.KEY.a:
case cc.macro.KEY.left:
break;
case cc.macro.KEY.d:
case cc.macro.KEY.right:
break;
}
},
触摸监听
//注册触摸监听
var touchReceiver = cc.Canvas.instance.node;
touchReceiver.on('touchstart', this.onTouchStart, this);
touchReceiver.on('touchend', this.onTouchEnd, this);
//注销触摸监听
var touchReceiver = cc.Canvas.instance.node;
touchReceiver.off('touchstart', this.onTouchStart, this);
touchReceiver.off('touchend', this.onTouchEnd, this);
//触摸开始
onTouchStart (event) {
var touchLoc = event.getLocation();//获取触摸点
},
onTouchEnd (event) {
},
对象池
//创建对象池
this.starPool = new cc.NodePool('Star');
//从对象池创建对象
if (this.starPool.size() > 0) {
newStar = this.starPool.get(this);
} else {
newStar = cc.instantiate(this.starPrefab);
}
//放回对象池,这个方法会同时调用节点的 removeFromParent
this.starPool.put(newStar);
场景切换
cc.director.loadScene('SampleScene');
网友评论