您的位置:首页 > 移动开发 > Cocos引擎

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

2013-09-24 15:30 363 查看

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

步骤

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中的示例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: