飛行制御ゲームのような効果を得ようとしています。ユーザーが画面上で指をドラッグすると、そのデータが配列に格納され、アイテムは指が離された場所までそのパスをたどります。
私はこれが機能するためのコードを持っています。私の問題は、ゲームのように安定したペースにしたいということです。スプライトが動くと、指を動かす速さによって速度が異なります。
任意の助けをいただければ幸いです。
それが私のCCMoveToアクションに関係していることはかなり確信していますが、これを行う他の方法は本当に考えられません。
void WavePrototypeInterface::ccTouchesBegan(CCSet* touches, CCEvent* event)
{
while (movementPath->count() != 0)
{
movementPath->removeControlPointAtIndex(0);
}
index=0;
this->stopAllActions();
}
void WavePrototypeInterface::ccTouchesMoved(CCSet* touches, CCEvent* event)
{
CCTouch* touch = (CCTouch*)( touches->anyObject() );
CCPoint location = touch->getLocationInView();
location = CCDirector::sharedDirector()->convertToGL(location);
movementPath->addControlPoint(location);
int xValue = movementPath->count();
}
void WavePrototypeInterface::ccTouchesEnded(CCSet* touches, cocos2d::CCEvent* event)
{
if(!movementPath->count()<=0)
{
goToPointWithIndex();
}
}
void WavePrototypeInterface::goToPointWithIndex()
{
CCPoint toPoint = movementPath->getControlPointAtIndex(index);
if(index < movementPath->count())
{
index++;
sprite->setPosition(toPoint);
CCDelayTime * delay = CCDelayTime::create(0.1);
CCCallFunc *func = CCCallFunc::create(this, callfunc_selector(WavePrototypeInterface::goToPointWithIndex));
CCSequence * seq = CCSequence::createWithTwoActions(delay, func);
this->runAction(seq);
}
}