2013-10-07 41 views
0

我一直在研究一个小平台,并决定尝试新的碰撞检测。我遵循了ray wenderlich关于如何制作iOS平台游戏的教程,并提出了一些问题。在教程中,它设置为支持特定的图块大小,我想知道如何正确修改它以支持80x80的图块大小。这是用来获取瓦片坐标和边界框的方法。如何支持较大的瓷砖

- (CGPoint)tileCoordForPosition:(CGPoint)position 
{ 
    float x = floor(position.x/map.tileSize.width); 
    float levelHeightInPixels = map.mapSize.height * map.tileSize.height; 
    float y = floor((levelHeightInPixels - position.y)/map.tileSize.height); 
    return ccp(x, y); 
} 

-(CGRect)tileRectFromTileCoords:(CGPoint)tileCoords 
{ 
    float levelHeightInPixels = map.mapSize.height * map.tileSize.height; 
    CGPoint origin = ccp(tileCoords.x * map.tileSize.width, levelHeightInPixels - ((tileCoords.y + 1) * map.tileSize.height)); 
    return CGRectMake(origin.x, origin.y, map.tileSize.width, map.tileSize.height); 
} 

回答

0

由于此代码使用tilemap中的值,因此如果在tilemap中正确设置,则不需要更改代码。

我当然没有看到任何幻数,这很好。只有傻瓜和巫师使用魔法数字。 :)

+0

多数民众赞成我所认为的,但每当我加载一个瓷砖地图以外提供它会导致崩溃。这可能与点击检测有关。 – user1569940

+0

如果发生崩溃,那么这就是你应该询问的问题。不要假设它会是什么,只会浪费你的时间。专注于崩溃及其发生的原因。 – LearnCocos2D