2013-12-15 160 views
0

我正在加載使用Tiled軟件創建的400x400瓷磚地圖。 一個圖塊爲總共48000x48000像素的120個像素。使用cocos2d-x滾動大的瓷磚地圖給我黑色的瓷磚,應該有綠色的瓷磚

我加載像這樣

regionMap->initWithTMXFile("background2.tmx"); 
    mapLayer->addChild(regionMap, 0, enTagTileMap); 
    mapLayer->setAnchorPoint(CCPoint(0,1)); 

然後滾動我喜歡這個。

mapLayer->setPosition(position); 

當我垂直滾動到關於這個位置時,我不再從地圖上取下地磚,我只是拿到黑色的地磚。

x=0 , y=5483.748535 

當我水平滾動時,即使到達此位置時也不會遇到同樣的問題。

x=-48000, y=400 

感謝您的提前。

回答

1

我認爲可以公平地假設cocos2d-x的tilemap渲染器是cocos2d-iphone中的一個直接端口。如果屬實,則它們都可以顯示最多65,536個頂點(16,384個瓷磚)的限制(不計空白瓷​​磚)。

假設只有一個圖層並且沒有任何「空白」圖塊(空格==具有GID值0的圖塊位置),則您的圖塊爲400x400 = 160,000個圖塊。這意味着大約是cocos2d可以/可以渲染的瓦片數量的十倍。

Cocos2d只會渲染多達16,384個瓦片,然後停止,剩餘的瓦片將不會被渲染,因此您會看到背景顏色(默認值:黑色)。

一個常見但尷尬的解決方法是將地圖拆分爲多個TMX文件並將它們在代碼中對齊。

+0

非常感謝。我用200x200的瓷磚地圖進行了嘗試,並且它在大約y = 80時也停止了渲染。該貼圖包含一個圖層,其中全部填充了來自相同紋理的圖塊。所以我認爲它只有大約16,000個而不是65,536個可以由cocos2d-x渲染的圖塊。我嘗試了125x125,它工作正常,但這太有限了,不可信。難道我做錯了什麼? – Abdalla

+0

對不起,我的壞。它有65k個頂點,但每個瓷磚有4個頂點,因此可製作16k個瓷磚。 – LearnCocos2D

+0

好的,謝謝:) – Abdalla