从cpp测试中获取香草cocos2dx函数的EXC_BAD_ACCESS

Getting EXC_BAD_ACCESS on vanilla cocos2dx function taken from cpp-tests

本文关键字:EXC BAD ACCESS 函数 cocos2dx 测试 cpp 获取 香草      更新时间:2023-10-16

我正在编写一款战舰游戏,当我点击除网格中的一个方块之外的任何东西时,它似乎会崩溃。下面是抛出异常的函数:

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);
}

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