我用下面的函数返回精灵的碰撞区域,但是不知道为什么返回的值不变

我创建了一个button 用的是addclickeventlistener 和一个精灵,当点击按钮时精灵移动,按钮和精灵移动正常
我用下面的函数返回精灵的碰撞区域,但是不知道为什么返回的值不变
相关代码如下

        //游戏主角创建
     
        m_player = Player::create();
        m_player->bindSprite(Sprite::create("player2.png"));
        m_player->setPosition(Vec2(200,visibleSize.height/4));
        this->addChild(m_player,1);
        //创建向左移动的按钮
        left = Button::create("button.png");
        left->setTitleText("left");
        left->cocos2d::Node::setPosition(Vec2(visibleSize.width/2-100, visibleSize.height/6));
        left->addClickEventListener(CC_CALLBACK_1(TollgateScene::clickToleft, this));
        this->addChild(left,2);
//向左移动事件
void TollgateScene::clickToleft(Ref* Refnder){
  
    m_player->leftMove();
}
/精灵向左移动的函数
void Player::leftMove(){
    if(getSprite() == NULL){
        return;
        
    }
    
    
    
  MoveBy *leftmove = MoveBy::create(0.15, Vec2(-100, 0));
   getSprite()->runAction(leftmove);
    
    
}

```

  rect Player::getBoundingBox(){

    if(getSprite()==NULL){
        log("3");
        return Rect (0, 0, 0, 0);
        
        
    }
    Size spriteSize = getSprite()->getContentSize();
    Point entityPos = getPosition();
  
    log("%f %f %f %f",entityPos.x- spriteSize.width/2,entityPos.y - spriteSize.height/2, spriteSize.width, spriteSize.height);//测试值
    
return Rect(entityPos.x - spriteSize.width/2, entityPos.y - spriteSize.height/2, spriteSize.width, spriteSize.height);
   
    
}

   


```

可能是因为 Point entityPos = getSprite()->getPosition()?

getsprite是我创建的一个函数,返回值是一个精灵,而且他是和m_player通过addchild绑定的,为什么精灵一移动了,值却不变

你要返回m_player上面精灵的区域,entityPos 应该返回精灵的位置而不是m_player的位置吧。你的代码中写的是 Point entityPos = getPosition(); 应该是Point entityPos = getSprite()->getPosition()吧

估计是,我回头试一试

问题已解决,问题原因是我在进行移动操作时,执行移动操作的对象错了