Cocos2d iphone Xcode冲突检测错误Cocos2D断言错误

Cocos2d iphone Xcode冲突检测错误Cocos2D断言错误,cocos2d-iphone,collision-detection,assertion,Cocos2d Iphone,Collision Detection,Assertion,我正在cocos2D中做一个球类游戏,你可以将球向一个方向滑动,它会一直移动,直到它撞到墙上。当我向一个方向滑动球时,碰撞检测会给我一个“断言错误” 我正在使用TileMap制作关卡 我编码的方式是找到我的球所在的瓷砖大小,然后在for循环中,检查球周围是否有墙精灵 你知道哪里出了问题吗 -(void)callEveryFrame:(ccTime)dt{ //此处出现错误vvv(在-[CCTMXLayer tileAt:]中断言失败) NSLog(@“第一次触摸x:/%f最后一次触摸x:/%f第

我正在cocos2D中做一个球类游戏,你可以将球向一个方向滑动,它会一直移动,直到它撞到墙上。当我向一个方向滑动球时,碰撞检测会给我一个“断言错误”

我正在使用TileMap制作关卡

我编码的方式是找到我的球所在的瓷砖大小,然后在for循环中,检查球周围是否有墙精灵

你知道哪里出了问题吗

-(void)callEveryFrame:(ccTime)dt{
//此处出现错误vvv(在-[CCTMXLayer tileAt:]中断言失败)
NSLog(@“第一次触摸x:/%f最后一次触摸x:/%f第一次触摸y:/%f最后一次触摸y:/%f”,firstTouch.x,lastTouch.x,firstTouch.y,lastTouch.y);
如果(swipeLeft | | | | | | | swipeDown | | swipeUp)
{
布尔碰撞=假;
int ballTileX=(player.position.x/level1.tileSize.width);
int ballTileY=(player.position.y/level1.tileSize.width);
int collisionAreaX=ballTileX-1;
int collisionAreaY=ballTileY-1;
对于(int i=0;i<9;i++)
{
bool tilePresent=[background tileAt:CGPointMake(collisionAreaX,collisionAreaY)]!=NULL;
如果(tilePresent和&CGRectIntersectsRect(CGRectMake(碰撞区域X*level1.tileSize.width,碰撞区域Y*level1.tileSize.height,level1.tileSize.width,level1.tileSize.height),CGRectMake(ballTileX*level1.tileSize.width,ballTileY*level1.tileSize.height,level1.tileSize.height)))
{
碰撞=真;
打破
}
如果(i%3==0)
{
碰撞面积x-=2;
碰撞面积++;
}
其他的
{
碰撞面积++;
}
}
如果(碰撞){
swipeLeft=false;
swipeRight=假;
swipeDown=false;
swipeUp=false;
}
}
}

在调试控制台(日志)中发布准确的错误消息。可能是tile-coord越界。以下是错误:2013-06-07 15:33:09.035 Test1a[25124:15203]***在-[CCTMXLayer tileAt:]、/Users/barneychambers/Documents/Test1a/Test1a/libs/cocos2d/CCTMXLayer.m:263中的断言失败以及实际的消息?它不是“无效位置”就是“地图已发布”。我打赌是前者,所以检查tileAt坐标,找出它们超出边界的原因。嗨,巴尼,异常断点启用了吗?如果没有,请尝试启用它以获取有问题的代码的信息。要启用异常断点,请查看以下内容:[链接]