bagaimana cara memindahkan, memperbesar atau memperkecil layer seperti coc di cocos2d-x?

Saya membuat lapisan level yang mencakup semua hal dalam game, seperti latar belakang, musuh, peluru, pemain, dan stiker lainnya, saya ingin membuat lapisan ini dapat dipindahkan, diperbesar dan diperkecil, kemungkinan besar clash of clans, Apakah ada saran atau ideal, terima kasih.


person kode cooper    schedule 05.07.2013    source sumber


Jawaban (1)


Misalkan nama Lapisan Anda adalah exampleLayer

GERAKAN LAPISAN

Di lapisan fungsi ccTouchMoved Anda, terapkan kode berikut

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

ZOOM IN DAN ZOOM OUT

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
}

Anda dapat memanggil metode ini pada tombol zoomIn dan zoomOut, atau sesuai desain game Anda. Semoga ini bisa membantu Anda.

person touchscreenstudio    schedule 05.07.2013
comment
Terima kasih atas kiriman Anda, saya dapat memindahkan lapisannya sekarang, tetapi hal berikutnya adalah mengikat lapisan tersebut, untuk mencegah pemindahan latar belakang melampaui port tampilan. - person kode cooper; 05.07.2013
comment
Terima kasih, menurut saya masalah sebenarnya adalah lapisan gulir dengan kamera. :-) - person kode cooper; 05.07.2013