2013-10-07 24 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

相關問題