引擎版本 v2.0.8
恢复视野
继续故事,小怪在黑夜中失去了视野。它找不到玩家的位置,只好自己在默默的思考,开发自己大脑。
渐渐地,小怪可以每秒钟思考两次了。
properties: {
thinkCD : 0.5
},
update (dt) {
// 1 秒 2 次
this.time += dt;
if (this.time >= this.thinkCD) {
this.time = 0;
// 执行一些方法
}
}
玩家的一堵墙
等到迷雾散去,小怪的视野恢复了。但是!!!
玩家不知何时竟然造了一堵墙。
小怪过不去。。。
啊!!!!可恶的人类!
补充
玩家与小怪加入刚体和物理碰撞盒子,设置不允许睡眠,重力为0,墙就设置为静态刚体。
全部:
记得开启物理系统:
onLoad () {
// 开启物理
cc.director.getPhysicsManager().enabled = true;
}
小怪的思考
目前的情况:
如何不被墙挡住呢?
小怪开始思考!!!
如果。。。我前进不了就向下走呢!
尝试值
每一次的改变方向都应再次尝试下靠近玩家。
代码
onLoad () {
// 开启物理
cc.director.getPhysicsManager().enabled = true;
// 间接向量
this.vector = cc.v2(0,0);
// 间接时间变量
this.time = 0;
// 间接位置
this.temp = cc.v2(0,0);
// 尝试次数
this.try = 0;
},
update (dt) {
// 1 秒 2 次
this.time += dt;
if (this.time >= this.thinkCD) {
this.time = 0;
// 向量减法,计算方向向量
this.vector = this.player.position.sub(this.node.position);
// 判断是不是被墙挡住了,与上一次位置比较
if (Math.abs(this.node.x - this.temp.x) < 1) {
// 尝试值
this.try += 1;
// 尝试一次后不通,改变方向
if (this.try >= 2) {
this.try = 0;
this.vector.set (cc.v2(0,-100));
}
}
// 记录新位置
this.temp.set(this.node.position);
}
this.walkTo(this.vector, dt);
},
效果
如果不想让小怪旋转:
效果
哇咔咔!!!
玩家看你哪里跑!!!
O(∩_∩)O~~