关于CocosCreator学习中的问题(对碰撞体的sensor进行更改)
从使用cocoscreator以来,我一直都很迷。曾多次遇到这样一类问题——在代码里对某个节点的组件中某些值进行更改,在console中打印出来的数值是改变了,但实际呈现出来的效果却没有改变。简言之,就是数值变了结果没变。
有一些这类问题总是默默地就解决了(没错,我也不知道问题在哪,有时候重启能解决,更离谱的是有一次的解决居然就仅仅只是加了一句console.log(),然后将这句删除后,也在没出过问题)。
进入正题,对于碰撞体中的sensor的修改也有一定问题,最开始进行测试的时候,在代码中直接设置,如:‘this.collider.sensor = true’,这样就能直接将碰撞器改为触发器,如果值为false则改为碰撞器。
理论如上,下面说说我想要的效果:
当游戏中人物出狱特定环境下时,需要取消碰撞,但是修改地图很不现实,于是我就把主意打到人物身上。理论是,当人物满足特定条件是,将人物身上的碰撞器改为触发器,一定时间后,再将触发器还原为碰撞器。
理论代码如下:
PlayerDown(time:number){
if(this.playerCollider){
this.playerAnimation?.PLayerJump();//这里是调用的播放动画的方法,不用管(下同)
this.playerCollider.sensor = true;//修改collider的sensor值(下同)
this.scheduleOnce(()=>{
if(this.playerCollider){
this.playerCollider.sensor = false;
}
},time)//计时器(规定时间内还原人物碰撞器)(下同)
}
}