今日は調子がいいなー、よーし、パッドを動かすところまで行くぞー。 ^^
まずはタップが出来るように init に以下の記述を。
//シングルタップが出来るように
{
ccTouchesMode mode = kCCTouchesOneByOne;
this->setTouchMode(mode);
this->setTouchEnabled(true);
}
次は ccTouchBegan をオーバーライドする感じですね。
まずは、CCLayer.h から ccTouchBegan の宣言部分をコピって、ヘッダーに張り付けw
virtual bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
よし、タップだなー… とその前に…。
なんだこれは… 初めて見る型の変数を宣言する…?
b2MouseJoint * _mouseJoint;
タップ操作を利用するためのモノっぽい…(まんまww ^^;
まぁ、とりあえず、 ccTouchBegan を実装してみます。
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
do
{
if (_mouseJoint)
{
break;
}
b2Vec2 vecPos;
{
CCPoint pos = pTouch->getLocation();
pos = ccpMult(pos, 1.0f / PTM_RATIO);
vecPos = b2Vec2(pos.x, pos.y);
}
if (_paddleFixture->TestPoint(vecPos))
{
b2MouseJointDef md;
md.bodyA = _groundBody;
md.bodyB = _paddleBody;
md.target = vecPos;
md.collideConnected = true;
md.maxForce = 1000.0f * _paddleBody->GetMass();
_mouseJoint = (b2MouseJoint *)_world->CreateJoint(&md);
_paddleBody->SetAwake(true);
}
} while (0);
return true;
}
こんな感じでいいのかな?
タップした位置に Paddle があれば b2MouseJoint を生成するって感じですね。
b2MouseJointDef の設定項目…忘れそうだなーwww ^^;
とりあえず ccTouchMove, ccTouchEnd に続く。