【学习笔记】Cocos2d-x 重力加速计的使用

来源:互联网 发布:可口可乐波士顿矩阵 编辑:程序博客网 时间:2024/05/18 03:48

主题:重力加速计使用说明

步骤

1.开启重力加速计

void AccelerometerTest::onEnter(){    CCLayer::onEnter();//当前layer中开启重力加速计    setAccelerometerEnabled(true);    CCLabelTTF* label = CCLabelTTF::create(title().c_str(), "Arial", 32);    addChild(label, 1);    label->setPosition( ccp(VisibleRect::center().x, VisibleRect::top().y-50) );    m_pBall = CCSprite::create("Images/ball.png");    m_pBall->setPosition(ccp(VisibleRect::center().x, VisibleRect::center().y));    addChild(m_pBall);    m_pBall->retain();}


2.实现接口方法

void AccelerometerTest::didAccelerate(CCAcceleration* pAccelerationValue){    CCDirector* pDir = CCDirector::sharedDirector();    /*FIXME: Testing on the Nexus S sometimes m_pBall is NULL */    if ( m_pBall == NULL ) {        return;    }    CCSize ballSize  = m_pBall->getContentSize();    CCPoint ptNow  = m_pBall->getPosition();    CCPoint ptTemp = pDir->convertToUI(ptNow);    ptTemp.x += pAccelerationValue->x * 9.81f;    ptTemp.y -= pAccelerationValue->y * 9.81f;    CCPoint ptNext = pDir->convertToGL(ptTemp);    FIX_POS(ptNext.x, (VisibleRect::left().x+ballSize.width / 2.0), (VisibleRect::right().x - ballSize.width / 2.0));    FIX_POS(ptNext.y, (VisibleRect::bottom().y+ballSize.height / 2.0), (VisibleRect::top().y - ballSize.height / 2.0));    m_pBall->setPosition(ptNext);}

这个是引擎自带的TestCpp中的示例。