cocos2d-x实现滑屏(3)
来源:未知 责任编辑:责任编辑 发表时间:2013-11-26 22:13 点击:次
p>void CSlidingLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
p>{
p> if (m_vecSprite.size() == 0)
p> {
p> return ;
p> }
p>
p> CCPoint ptEnd = pTouch->getLocation();
p> if (ptEnd.x > m_ptTouchDown.x) // 向右滑
p> {
p> if (ptEnd.x - m_ptTouchDown.x >= NEXT_SPRITE_SHOW)
p> {
p> m_nCurSprite--; // 当前页变为前一页
p> }
p> }
p> else if (ptEnd.x < m_ptTouchDown.x) // 向左滑
p> {
p> if (m_ptTouchDown.x - ptEnd.x >= NEXT_SPRITE_SHOW)
p> {
p> m_nCurSprite++; // 当前页变为下一页
p> }
p> }
p> m_nCurSprite = __min(m_nCurSprite, (int)m_vecSprite.size() - 1);
p> m_nCurSprite = __max(0, m_nCurSprite);
p>
p> if (m_vecSprite.size() != 0)
p> {
p> CCSprite* pSprite = m_vecSprite[m_nCurSprite];
p> CCAssert(pSprite != NULL, "");
p> CCSize size = CCDirector::sharedDirector()->getWinSize();
p> pSprite->setPosition(ccp(size.width / 2, size.height / 2)); // 将当前页显示在屏幕中间
p>
p> // 为了使左右两个精灵不对当前页构成显示影响,将左右精灵都移动到很远很远的地方去
p> if (m_nCurSprite >= 1)
p> {
p> pSprite = m_vecSprite[m_nCurSprite - 1];
p> pSprite->setPosition(ccp(-10000, 0));
p> }
p> if (m_nCurSprite + 1 <= (int)m_vecSprite.size() - 1)
p> {
p> pSprite = m_vecSprite[m_nCurSprite + 1];
p> pSprite->setPosition(ccp(-10000, 0));
p> }
p> }
p>}
p>
p>//////////////////////////////////////////////////////////////////////////
p>void CSlidingLayer::AddSprite(CCSprite* pSprite)
p>{
p> CCAssert(pSprite != NULL, "");
p> m_vecSprite.push_back(pSprite);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>