電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[cocos2d-x]CCLayer子類別中拖動CCSprite的方法

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 板主碎碎唸
上一篇主題 :: 下一篇主題  
發表人 內容
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2012-10-20, AM 12:57 星期六    文章主題: [cocos2d-x]CCLayer子類別中拖動CCSprite的方法 引言回覆

假設有個HelloWorld類別是CCLayer的子類別
於HelloWorld.h檔中加入:
代碼:
virtual void onEnter();
virtual void onExit();
bool containsTouchLocation(CCTouch *pTouch);
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);

CCSprite *mSprite;
CCPoint mTouchPoint;

於HelloWorld.cpp檔中加入:
代碼:
void HelloWorld::onEnter()
{
    CCDirector* pDirector = CCDirector::sharedDirector();
    pDirector->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
    CCLayer::onEnter();
}

void HelloWorld::onExit()
{
    CCDirector* pDirector = CCDirector::sharedDirector();
    pDirector->getTouchDispatcher()->removeDelegate(this);
    CCLayer::onExit();
}

bool HelloWorld::containsTouchLocation(CCTouch *pTouch)
{
    return mSprite->boundingBox().containsPoint(pTouch->getLocation());
}

bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
    if ( !containsTouchLocation(pTouch) ) return false;
    mTouchPoint = pTouch->getLocation();
    return true;
}

void HelloWorld::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)
{
    CCPoint touchPoint = pTouch->getLocation();
    touchPoint = ccpSub(touchPoint, mTouchPoint);
    touchPoint = ccpAdd(mSprite->getPosition(), touchPoint);
    mSprite->setPosition( touchPoint );
    mTouchPoint = pTouch->getLocation();
}

其中mSprite在HelloWorld的init中已初始化建立
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 板主碎碎唸 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作