我正在使用cocos2d在iOS上使用Box2d編輯器。cocos2d,如何讓b2World繪製我自己的數據?
我把b2World
包裝到我自己的世界級。我想實現我自己的繪製功能。由於我將繪製更高級別的類(牆,繩等),因此創建b2Draw
子類並將其設置爲世界的DebugDraw是不夠的,但我還需要更改b2World
DrawDebugData
。
從CCLayer
繼承我的世界級並覆蓋draw
方法是一個好主意嗎?最好的方法是什麼?
我正在使用cocos2d在iOS上使用Box2d編輯器。cocos2d,如何讓b2World繪製我自己的數據?
我把b2World
包裝到我自己的世界級。我想實現我自己的繪製功能。由於我將繪製更高級別的類(牆,繩等),因此創建b2Draw
子類並將其設置爲世界的DebugDraw是不夠的,但我還需要更改b2World
DrawDebugData
。
從CCLayer
繼承我的世界級並覆蓋draw
方法是一個好主意嗎?最好的方法是什麼?
我希望人們閱讀的答案。
即使b2World實現了一些繪圖功能,它只是用於調試目的,應該照原樣使用(除非您想更改一兩行)。
如果你想繪製更高層次的對象(或者改變調試繪製的行爲),你不應該修改b2World的繪製或者GLES-Render。相反,您會覆蓋CCSprite/CCLayer繪圖方法。
我想你自己說了答案 - '我需要改變b2World DrawDebugData'。或者對於更具前瞻性思維的解決方案,您可以通過給他們提供Box2D機構來製作牆壁和繩索。 – iforce2d
第一種方法,改變DrawDebugData:你的意思是直接改變b2World.cpp?我不認爲這是一個好方法。另外我認爲b2World不準備擴展。第二種方法:模型對象可能會自己繪製,但仍然有人需要調用該繪製方法,所以我們仍然處於方法1中。 – Ave
我不明白。你想要的只是控制調試繪圖?所有你需要做的就是在 - (void)繪製你自己的代碼。 –