Использование Cocos2D.В настоящее время я разделил большую часть спрайта и поведения игрока от карты отладки, и теперь у меня возникают проблемы со ссылкой на TMXLayer из класса спрайта.Я попытался выделить экземпляр класса DebugZoneLayer внутри этого метода из класса sprite и выпустить его со странными результатами.Это компилируется без ошибок, но не в состоянии проверить if (blocksCollidableGID | blocksCollidable2GID) { условно, потому что debugZoneLayer.blocksCollidable сейчас ничего не значит для этого метода.
Метод внутри класса sprite:
-(BOOL) checkTileCollisionForStrafing:(NSString*)omit{
for(int j = 0; j < _collisPushPointsNums; j++){
NSValue *val = [_collisPushPoints objectAtIndex:j];
CGPoint p = [val CGPointValue];
CGPoint tileCoord;
if(omit==@"y"){
tileCoord = [debugZoneLayer tileCoordForPosition:ccp(_heroSprite.position.x+_vel.x+p.x, _heroSprite.position.y+(p.y+.001))];
}else{
tileCoord = [debugZoneLayer tileCoordForPosition:ccp(_heroSprite.position.x+p.x, _heroSprite.position.y+_vel.y+p.y)];
}
int blocksCollidableGID = [debugZoneLayer.blocksCollidable tileGIDAt:tileCoord];
int blocksCollidable2GID = [debugZoneLayer.blocksCollidable2 tileGIDAt:tileCoord];
if (blocksCollidableGID | blocksCollidable2GID){
NSLog(@"j = %i", j);
return YES;
}
}
return NO;
}