一、物理引擎的激活
cc.director.getPhysicsManger().enabled=true
1、给物体施加力(冲量)
(1)物体需要添加RigidBody并在脚本中获取组件;
var rigNode=this.node.getComponent(cc.RigidBody);
(2)激活物理引擎;
(3)给物体施加线性冲量;
rigNode.applyLinearImpulse(cc.v2(0,99),rigNode.getWorldCenter(),true);
applyLinearImpulse()含有三个参数分别是冲量大小、力作用点、是否开启刚体。
二、碰撞检测相关
激活(开启)碰撞检测:
cc.director.getCollisionManger().enabled=true
1、物体发生碰撞需要添加相应的碰撞体,并且在“项目设置”的“分组管理”中添加相应的分组,勾选允许产生碰撞的分组,物体属性检查器的Group对应各自的分组名称;
2、在脚本中开启碰撞检测事件(没有开启就不会响应碰撞事件)
3、显示碰撞检测的区域
cc.director.getCollisionManger().enabledDebugDraw=true;
4、碰撞函数
(1)onCollisionEnter(other,self){};发生碰撞触发函数;
(2)onCollisionStay(other,self){};发生碰撞产生交集时候触发函数;
(3)onCollisionExit(other,self){};发生碰撞l离开时候触发函数;
5、多个物体与一个物体发生碰撞时可以使用tag值进行区别
if(other.node.getComponent(cc.BoxCollider).tag==tag值的大小 ){...}
三、键盘输入事件
1、开启按键监听事件(onLoad函数)
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this)
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this)
onKeyDown和onKeyUp代表键盘按下及松开的自定义函数,
2、关闭按键监听事件(ondestory函数)
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this)
cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this)
3、按键按下(松开)的函数
onKeyDown(event)
{
switch(event.keyCode)
{
case cc.macro.a: ;break;
}
}
四、动态资源加载
所有需要通过脚本动态加载的资源,都必须放在 resources
文件夹或它的子文件夹里面。
cc.loader.loadRes("BG",function(err,prefab){
var newPrefab=cc.instantiate(prefab);
cc.director.getScene().getChildByName('Canvas').addChild(newPrefab)
})