Point headPos = m_head->getPosition();
CCActionInterval* actionTo = NULL;
switch (m_dirType)
{
case UP:
if (pos.x > headPos.x){
m_dirType = RIGHT;
actionTo = CCRotateTo::create(0.05, 90);
}
else{
m_dirType = LEFT;
actionTo = CCRotateTo::create(0.001, -90);
}
break;
case DOWN:
if (pos.x > headPos.x){
m_dirType = RIGHT;
actionTo = CCRotateTo::create(0.001, -90);
}
else{
m_dirType = LEFT;
actionTo = CCRotateTo::create(0.001, 90);
}
break;
case LEFT:
if (pos.y > headPos.y) {
m_dirType = UP;
actionTo = CCRotateTo::create(0.001, 90);
}
else
{
m_dirType = DOWN;
actionTo = CCRotateTo::create(0.001, -90);
}
break;
case RIGHT:
if (pos.y > headPos.y) {
m_dirType = UP;
actionTo = CCRotateTo::create(0.001, -90);
}
else
{
m_dirType = DOWN;
actionTo = CCRotateTo::create(0.001, 90);
}
break;
}
m_head->runAction(CCSequence::create(actionTo, NULL));
代碼的意思:一開始是向上走的,假如向右改變方向,則順時針旋轉90度,向左就逆時針旋轉90度,但是我這樣寫只能順時針或逆時針旋轉一次,請各位大神幫忙解答一下這是出了什么問題
uj5u.com熱心網友回復:
你用rotateBy 試試看uj5u.com熱心網友回復:
樓上正解,你看一下RotateTo的實作你就會懂了uj5u.com熱心網友回復:
有自帶的函式很方便的http://bbs.9ria.com/thread-204010-1-1.html
uj5u.com熱心網友回復:
rotateBy+1轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65873.html
標籤:Cocos2d-x
上一篇:mySql事務處理TPL的小總結
下一篇:換裝類游戲出圖如何定坐標
