จะย้าย ซูมเข้าหรือออกเลเยอร์เหมือน coc ใน cocos2d-x ได้อย่างไร?

ฉันสร้างเลเยอร์ระดับซึ่งรวมถึงเนื้อหาของเกมทั้งหมด เช่น พื้นหลัง ศัตรู กระสุน ผู้เล่น และสติ๊กเกอร์อื่น ๆ ฉันต้องการทำให้เลเยอร์นี้สามารถย้าย ซูมเข้าและออก ซึ่งเป็นไปได้มากว่า การปะทะกันของเผ่า แข็งแกร่ง> มีข้อเสนอแนะหรืออุดมคติใด ๆ ขอบคุณ


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