[英]Making a custom class for objects in Flash AS3 & Away3D
我將使用Away3D API在Flash AS3中制作基於圖塊的3D RPG游戲。
我的問題是,到目前為止,我還不太了解away3d api。
我想做一個“積木”課程。 如果我加載tile-map-data,我想做這樣的事情:
viewport.addchild( tileArray[ layer ][ x ][ y ] );
所以這將是一個循環。
到目前為止,一切都很好,但這必須是3dObject。
用那個3dObject填充那個數組,我想做這樣的事情。
tileArray[ layer ][ x ][ y ] = myBlocksClass.getBlock( "grassCube" );
因此,myBlocksClass中的getBlock函數將向我返回3dObject。
<edit>
這些塊應該是類似於我的世界中的某種塊(grassCube,dirtyCube等),因此我想在地圖中加載一個塊的多個實例
</edit>
我怎樣才能做到這一點 ? 有誰能給我任何想法或參考?
是的,我已經准備好查閱所有可訪問的資源/紀錄片/示例,但無論如何我都無法弄清楚。
更新:
問題更多是代碼。 我知道理論,但是游戲開發人員的actionscript3對我來說幾乎是新手。
如何為“塊”構造類?
實際上,大多數3D應用程序都是基於圖塊的。 例如,流行的地形實現是一組塊,其中高分辨率的mash代表近距離,低分辨率的mash代表遠距離。 這些塊(以及場景中的每個對象)都組織在場景圖中。 通常是八叉樹 。
這樣就出現了平截頭截體
並且引擎僅渲染部分(或全部)位於View金字塔內部的節點。
特定於案例的優化非常重要,但非常棘手。 例如,地形網格頂點的順序和塊大小已針對GPU最佳匹配進行了優化,並且可能是GPU特定的(針對特定客戶端構建的),並且同時與紋理和陰影的數量有關(如果不需要,您不希望交換材質因此,最好先將具有相同材質的塊依次渲染,然后再交換材質。)或者,假設有1000個紋理立方體,則只需一個模型即可使用不同材質繪制1000次。 它對GPU內存很有用,但它像10000次繪制調用一樣,可能會嚴重損害您的性能。 因此,您可能希望將它們焊接到恰好適合八叉樹節點並具有組合紋理的較大對象。 但是您顯然想要丟棄那些地下且看不見的立方體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.