C++ 如何同时旋转和平移我的精灵?cocos2dx 3.2
我在精灵的更新方法中尝试了旋转。这只是翻译。而且不旋转。谁能告诉我怎么做吗?多谢各位C++ 如何同时旋转和平移我的精灵?cocos2dx 3.2,c++,cocos2d-x,cocos2d-x-3.0,C++,Cocos2d X,Cocos2d X 3.0,我在精灵的更新方法中尝试了旋转。这只是翻译。而且不旋转。谁能告诉我怎么做吗?多谢各位 void CBall::Update(float dt) { this->Start(); auto action = RotateBy::create(dt,10); this->runAction(action); } void CBall::Start() { float currentX = getPositionX(); float distance = cu
void CBall::Update(float dt)
{
this->Start();
auto action = RotateBy::create(dt,10);
this->runAction(action);
}
void CBall::Start()
{
float currentX = getPositionX();
float distance = currentX + xOffset;
float time = distance / _speedX;
Vec2 destination = Vec2(distance,this->getPositionY());
auto actionMove = MoveTo::create(time,destination);
this->runAction(actionMove);
if(currentX > _screenWidth)
{
ReachedEndOfScreen();
}
}
不要在update方法中应用其他操作,而是尝试在第一个操作中应用它。同时,通过测试动作增加角度并缩短旋转持续时间
float currentX = getPositionX();
float distance = currentX + xOffset;
float time = distance / _speedX;
Vec2 destination = Vec2(distance,this->getPositionY());
auto actionMove = MoveTo::create(time,destination);
this->runAction(actionMove);
auto action = RotateBy::create(4,720);
this->runAction(action);
我希望它能有所帮助。事实上,您需要使用一个可同时运行多个操作的程序 下面是一个修改后的更新函数:
void CBall::Update(float dt)
{
float currentX = getPositionX();
float distance = currentX + xOffset;
float time = distance / _speedX;
Vec2 destination = Vec2(distance,this->getPositionY());
auto actionMove = MoveTo::create(time,destination);
if(currentX > _screenWidth)
{
ReachedEndOfScreen();
}
auto actionRotate = RotateBy::create(dt,10);
this->runAction(Spawn::create(actionMove, actionRotate, nullptr));
}
我勾画了您可以考虑在组合函数中重组更新实现的Stand()函数;p> 这对我还是不起作用。我认为那两个是原子的。你一个接一个地跑。直觉上,即使是序列也会这样做。我想交错两个动作。请告诉我怎么做。谢谢你的回复。听到这个消息我很难过。然而,我在cocos2d-X3.1Mohak的答案中同时使用了这两个选项。你还在调用RotateBy内部更新函数吗?我认为这不是个好主意。试着用启动功能代替。谢谢!实际上,我打算在这两种方法中加入更多的东西,因此是单独的方法。但无论如何,非常感谢你。这正是我想要的。