【问题标题】:Cocos2dx. Conditional actionCocos2dx。有条件的动作
【发布时间】:2018-04-01 13:47:44
【问题描述】:

我想使用动作创建玩家移动。我创建了函数void move(float x, float y);该函数创建操作RotateToMoveTo。仅当 forwardtarget - forward 之间的角度小于某个值时,我才想移动播放器;我尝试在update 函数中添加runAction(moveAction) 条件,在update 函数中使用bool lock 变量,但是update 内的任何runAction 调用都因SIGSEGV 信号而失败;

以下是我的类从 Node 派生的字段:

cocos2d::Action* moveAction;
cocos2d::Action* rotationAction;

在移动功能中:

void GameObject::move(float x, float y) {
  startPosition = getPosition();
  endPosition   = Vec2(x, y);

  stopAllActions();

  rotationAction = RotateTo::create(
      angleBetweenForwardAndTarget(endPosition) / rotateSpeed,
      -Mathf::normalizeAngle(Mathf::getAngle(lookAtPosition(endPosition)))
  );
  runAction(rotationAction);

  moveAction = MoveTo::create(
      endPosition.distance(startPosition) / moveSpeed,
      Vec2(x, y)
  );
  runAction(moveAction);
}

但现在旋转和平移同时发生 如何实现?

【问题讨论】:

    标签: cocos2d-x


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      相关资源
      最近更新 更多