Cocos2d JS 3.7物理雪碧移动

时间:2015-08-05 11:16:30

标签: action chipmunk cocos2d-js

我正在尝试使用移动动作在cocos2d JS 3.7(使用Chipmunk)中移动物理精灵,但它不起作用,我手动设置位置,它仍然无法正常工作。 cocos2d js 3.7中的Physics Sprite是否允许setposition函数?或者我做错了。

2 个答案:

答案 0 :(得分:0)

您是否正在尝试移动Sprite或其附加的物理主体?

请注意,在处理PhysicSprite时,您无法更改其坐标和旋转。相反,你应该像ps.body.p那样处理它。 p具有您应该处理的xy属性。

答案 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运行此操作。