今日は調子がいいなー、よーし、パッドを動かすところまで行くぞー。 ^^
まずはタップが出来るように 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 に続く。