как перемещать, увеличивать или уменьшать слой, как coc в cocos2d-x?

Я создаю слой уровня, который включает в себя все элементы игры, такие как фон, враги, пули, игрок и другие отличительные знаки, я хочу, чтобы этот слой можно было перемещать, увеличивать и уменьшать, скорее всего clash of clans, Есть какие-нибудь предложения или идеалы, спасибо.


person kode cooper    schedule 05.07.2013    source источник


Ответы (1)


Предположим, имя вашего слоя — exampleLayer.

ДВИЖЕНИЕ СЛОЯ

В ваших слоях функция ccTouchMoved реализует следующий код

 void ccTouchMoved(CCTouch* touch, CCEvent* event)
    {
        CCPoint diff = touch->getDelta();
        CCPoint currentPos = exampleLayer->getPosition();
        exampleLayer->setPosition(ccpAdd(currentPos, diff));
    }

МАСШТАБ И МАСШТАБ

void zoomIn()
{
    exampleLayer->setPosition(-(CCDirector::sharedDirector()->getWinSize().width/2),-(CCDirector::sharedDirector()->getWinSize().height/2)); // for positioning the laer in middle
    exampleLayer->setScale(1); // you can set your scale factor 1 is for example
}

void zoomOut()
{
    exampleLayer->setPosition(0,0);
    exampleLayer->setScale(1); // set your desired scale factor
}

Вы можете вызывать эти методы на кнопках zoomIn и zoomOut или в соответствии с игровым дизайном. Надеюсь, это поможет вам.

person touchscreenstudio    schedule 05.07.2013
comment
Спасибо за ваш пост, теперь я могу переместить слой, но следующая вещь связана со слоем, чтобы предотвратить перемещение фона за пределы окна просмотра. - person kode cooper; 05.07.2013
comment
Спасибо, я думаю, что настоящая проблема заключается в прокрутке слоя с камерой. :-) - person kode cooper; 05.07.2013