我工作在AS3一個基於組件的引擎和我有在遊戲對象的函數返回基於它的類型的組件:AS3聰明型。定義
gameObject.Has(Body); //This will return a reference to the gameobjects body component
我有問題正在訪問該組件。要做到這一點,我必須這樣做:
Body(gameObject.Has(Body)).SetVelocity(5);
有沒有人有更好的方式做到這一點?
編輯:
public function Has(type:Class):BaseComponent
{
for each(var component:BaseComponent in m_components)
if (component is type)
return component;
return null;
}
是的,我想過這樣做。我真的希望AS3有模板和預處理指令。 – user1133079
我也想寫一個按類型索引的函數的數組,但看起來好像過度殺死。 – user1133079
在AS3中,我很少會設置這樣一個通用的m_components數組。我想它是一個你有很多不確定的對象的情況下,你正在跟蹤或者你正在嘗試編寫更少的代碼。如果你想讓自己更容易處理Body,可以使用getter:'public function get body():Body'來包裝並投射該項目。 – LessQuesar