获取来自cpp-tests的vanilla cocos2dx函数的EXC_BAD_ACCESS

时间:2014-08-17 15:23:02

标签: c++ cocos2d-x exc-bad-access cocos2d-x-3.0

我正在写一个战舰游戏,当我点击网格中的一个方块以外的任何东西时它似乎崩溃了。这是吐出异常的函数:

Size Texture2D::getContentSize() const
{
    Size ret;
    ret.width = _contentSize.width / CC_CONTENT_SCALE_FACTOR(); // error here
    ret.height = _contentSize.height / CC_CONTENT_SCALE_FACTOR();

    return ret;
}

我用于方块的触摸对象在这里:

bool Square::containsTouchLocation(Touch* touch)
{
    return getTouchRect().containsPoint(convertTouchToNodeSpaceAR(touch));
    //touch->getLocation().y

}

Rect Square::getTouchRect()
{
    auto s = getTexture()->getContentSize();
    return Rect(-s.width/ 2, -s.height/ 2, s.width, s.height);

}

1 个答案:

答案 0 :(得分:0)

从提供的有限信息来看,getTexture()似乎返回了一个错误的值。 _contentSize.width是您第一次尝试访问Texture2D对象上的内存位置,因此它就是崩溃的地方。