1. 程式人生 > >Cocos2d-x Box2d中實現剛體的移動

Cocos2d-x Box2d中實現剛體的移動

用觸控實現剛體的移動,無論觸控到螢幕哪裡再移動都可以

paddle = Sprite::create("block.png");
    auto paddleBody = PhysicsBody::createBox(paddle->getContentSize(),PHYSICSBODY_MATERIAL_DEFAULT);
    paddleBody->getShape(0)->setRestitution(1.0f);
    paddleBody->getShape(0)->setFriction(0.0f);
    paddleBody->getShape(0)->setDensity(1.0f);
    paddleBody->setGravityEnable(false);
    paddle->setPhysicsBody(paddleBody);
bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event){
    this->startX=touch->getLocation().x;
    this->startY=touch->getLocation().y;
    return true;
}

void HelloWorld::onTouchMoved(Touch* touch, Event *unused_event)
{
    float mx = touch->getLocation().x-startX;
    float my = touch->getLocation().y-startY;
    Point touchLocation = this->convertToWorldSpace(this->convertTouchToNodeSpace(touch));
    paddle->setPosition(Vec2(paddle->getPosition().x+mx,paddle->getPosition().y+my));
    this->startX=touch->getLocation().x;
    this->startY=touch->getLocation().y;
}