对于我的碰撞检测,我需要检查球矩形是否与任何墙壁矩形相交。现在我让它工作,但它使用它检查球的位置是否在瓷砖的 GID 之一。
-(void) checkHits:(CGPoint)position {
CGPoint tileCoord = [self tileCoordForPosition:position];
int tileGid = [levelLayer tileGIDAt:tileCoord];
//NSLog(@"%g",tileRect.origin);
if (tileGid) {
NSDictionary *properties = [level propertiesForGID:tileGid];
if (properties) {
NSString *collision = [properties valueForKey:@"break"];
if (collision && [collision compare:@"True"] == NSOrderedSame) {
//for blocks
//[[SimpleAudioEngine sharedEngine] playEffect:@"hit.caf"];
[levelLayer removeTileAt:tileCoord];
velocity.y *= -1;
}
if (collision && [collision compare:@"False"] == NSOrderedSame) {
//for edges
//[[SimpleAudioEngine sharedEngine] playEffect:@"hit.caf"];
velocity.y *= -1;
}
}
}
}
我需要知道如何将其更改为检查球 rect/boundingbox 是否与具有属性中断的任何瓷砖 rects/boundingboxex 相交(以及如何首先获得瓷砖 rect/boundingbox)。PS 我正在使用平铺地图编辑器。