做的是一个多点触摸的功能
我要把中间的那个球,变成预制体生成,不把他摆在场景里面,实现相同的功能
那位大神帮忙看看
NewProject.zip (3.6 MB)
代码如下
cc.Class({
extends: cc.Component,
properties: {
canvas: cc.Node,
//follower:cc.Prefab,
follower: {
default: null,
type: cc.Node
},
followSpeed: 500
},
// use this for initialization
onLoad: function () {
var self = this;
self.moveToPos = cc.v2(0, 0);
self.isMoving = false;
self.canvas.on(cc.Node.EventType.TOUCH_START, function (event) {
var touches = event.getTouches();
var touchLoc = touches[0].getLocation();
self.isMoving = true;
self.moveToPos = self.follower.parent.convertToNodeSpaceAR(touchLoc);
}, self.node);
self.canvas.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
var touches = event.getTouches();
var touchLoc = touches[0].getLocation();
self.moveToPos = self.follower.parent.convertToNodeSpaceAR(touchLoc);
}, self.node);
self.canvas.on(cc.Node.EventType.TOUCH_END, function (event) {
self.isMoving = false; // when touch ended, stop moving
}, self.node);
},
// called every frame
update: function (dt) {
if (!this.isMoving) return;
var oldPos = this.follower.position;
// get move direction
var direction = this.moveToPos.sub(oldPos).normalize();
// multiply direction with distance to get new position
var newPos = oldPos.add(direction.mul(this.followSpeed * dt));
// set new position
this.follower.setPosition(newPos);
}
});
