
click草地, 波波會碌過黎.
click波波, 波波會飛走~
按圖後稍待數秒載入 =]
/==
可以讀入簡單的polygon model可看看 eco zoo =]或
/==
好簡單既一個動畫,
最主要面對幾個問題...
第一, 兩樣野太近時會有部份顯示唔到,
問題係z-sorting錯誤產生.
解決方法有幾個,
最簡單可以增加物體面數, 效能會隨面數上升而下降~
另外, 可以用QuadTreeRenderingEngine(papervision內建)取代BasicRenderer,
可以有效解決問題, 甚至可以正常顯示有intersect既物件,
不過效能下降最為嚴重. 詳情可參考http://blog.zupko.info/?p=177
為物體設定example_object.useOwnContainer = true
在某些情況可以解決z-sorting問題, 但原因不明...
第二, 想為物件設置MouseEvent.
先要設定:
example_viewport.interactive = true;
example_material.interactive = true;
而正確既寫法係
example_object.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, clickHandler);
private function clickHandler(event:InteractiveScene3DEvent):void{
//do something
}
要為DAE物件設定就比較麻煩,
原因係dae入面既面冇detect到click event,
解決方法如下:
可以首先設定一條function如下:
public function addEventListeners(displayObject:DisplayObject3D, eventType:String, listener:Function):void{
displayObject.addEventListener(eventType, listener);
for each(var child:DisplayObject3D in displayObject.children){
addEventListeners(child, eventType, listener);
}
}
再為需要有interaction既dae加上:
addEventListeners(example_object, InteractiveScene3DEvent.OBJECT_CLICK, clickHandler)
第三, 將screen coordinate 轉做 3D座標.
過程繁複唔多講, 但可以睇呢度
http://pv3d.org/2008/11/27/plane3d-intersect-poin/
//--- 繼續努力 =]