2012-03-21 71 views
0

我們使用cocos2d在iPhone/iPad的應用程序中顯示由三個不同parallaxing層組成的大圖像。用戶將能夠平移這個大圖像。僅在cocos2d中加載大圖像的可見區域

這些圖像寬度約爲13000像素,所以我們關注內存使用情況。 理想情況下,我們希望根據當前可見的內容將圖像網格化並加載它的子部分。

cocos2d是否包含任何可以幫助我們的東西? 我們已經看過使用Tile貼圖(我們有一個在CCTMXTiledMap上運行的原型),但它看起來並不像這是瓷磚地圖的一個很好的應用,因爲它們通常用於包含大型地圖/圖像反覆較小的圖像;而我們大圖像中的每個瓷磚都是獨一無二的。

有沒有人有任何關於最好的方式來做到這一點的明智想法?

回答

1

我記得在博客上看到一篇帖子,iPhone程序員在屏幕滾動時在後臺線程上加載圖像。他說,只要滾動不是太快,實現平滑滾動就不是問題。

您基本上根據屏幕向哪個方向滾動來加載圖像部分,並取消分配離開屏幕邊界的圖像。所以會有屏幕本身,屏幕邊緣周圍的邊框作爲緩衝區,以防播放器來回(左或右等)。

我希望我能找到鏈接,但在搜索30分鐘後,我放棄了。我確實看到他的視頻,並且非常流暢地滾動。

+0

是的,這是我昨晚實施的。當你平移時,我們仍然會加載一些緊張感;但是我可以通過預先緩存紋理或放入更多緩衝區並將它們加載到背景中來解決這個問題。 – tobyc 2012-03-21 19:26:58

+0

也許將屏幕分成9或12個矩形,然後將緩衝區放置在匹配一個矩形的邊緣周圍。隨着玩家的移動,加載新的緩衝區。一個好的測試將是移動對角線然後水平或垂直測試加載速度。我會在多個設備上進行測試,因爲模擬器絕對不是一個很好的測試平臺。 – TigerCoding 2012-03-22 06:05:51

相關問題