Я пишу игру на линкоре, и кажется, что она падает, когда я нажимаю на что-либо, кроме одного из квадратов в сетке. Вот функция, которая выплевывает исключение:
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, где он и падает.