我正在尝试使用移动动作在cocos2d JS 3.7(使用Chipmunk)中移动物理精灵,但它不起作用,我手动设置位置,它仍然无法正常工作。 cocos2d js 3.7中的Physics Sprite是否允许setposition函数?或者我做错了。
答案 0 :(得分:0)
您是否正在尝试移动Sprite
或其附加的物理主体?
请注意,在处理PhysicSprite
时,您无法更改其坐标和旋转。相反,你应该像ps.body.p
那样处理它。 p
具有您应该处理的x
和y
属性。
答案 1 :(得分:0)
我创建了PhysicsSprite并且'移动动作'为此工作。也许您的代码适用于'移动操作'到另一个精灵?
我的例子:
this.space = new cp.Space();
this.windowSize = cc.director.getWinSize();
this.sprite = new cc.PhysicsSprite(res.tank_png);
var contentSize = this.sprite.getContentSize();
this.body = new cp.Body(config.massTank, cp.momentForBox(config.massTank, contentSize.width/2, contentSize.height/2));
this.body.p = cc.p(this.windowSize.width/2, 0 + contentSize.height);
this.space.addBody(this.body);
this.sprite.attr({
x: this.windowSize.width/2,
y: this.windowSize.height/2,
anchorX: 0.5,
anchorY: 0.5
});
this.addChild(this.sprite);
var actionToUp = new cc.MoveBy(0, cc.p(0, 10));
this.sprite.runAction(actionToUp);
描述代码:
创造空间。获取窗口大小。创建PhysicsSprite。获取PhysicsSprite大小。创造身体。设置身体的位置。将此主体添加到空间。设置PhysicsSprite的位置和锚点。为移动创建动作。对PhysicsSprite运行此操作。