我試圖在同一個Sprite.graphics範圍內繪製多個形狀,似乎無法找到任何合理的解決方案,我的問題。AS3 - drawPath()&纏繞重疊產生奇怪的行爲
請注意,我一直在使用drawPath()方法來處理性能問題:我可以對blendmodes使用多個形狀,但是我希望避免這種情況,並將性能降至最低。
我一直在試驗drawPath()方法的繞組參數,但我不明白的一件事是繞組方向是如何由Flash定義的,所以這裏是第一個問題,問題: 是否考慮了點座標?或者是定義方向的生產線之間的角度?
這就是說,這是我的實際問題: 我想繪製一個形狀,從一個矩形在一條線上的投影 - 想象一個窗口和穿過它的光線,然後擊中地板。
爲了實現這個目標,我必須考慮到的是,lightsource位置可以有所不同,有什麼樣的結果:
這裏對第二張照片,你已經可以看到我正面臨的問題。爲了繪製我的形狀,我已經分別「繪製」(理解:將數字放在我的座標向量中)我的身材的不同部分:我想要投影的實際矩形,從左側投射的光,光線從底部投射,從右側投射光線。
我一直試圖從左上角開始小心保持每個部分的繞線方向相同,但是在我的推理中似乎有些問題,因爲每次中心部分都與任何側面部分重疊,那裏的形狀被清空,並且每當雙方部分重疊時,發生同樣的情況。
正如我寫在這裏,一些啓示突然罷工了我,現在我想,也許我所有點在我的座標向量必須在相同的纏繞方向被分類爲我的造型工作?... (而不僅僅是我在腦海中分開繪製的小部分^^)
如果我是對的(如果我不是,請糾正我,或者我已經理解錯了什麼?) ,這意味着我必須:
排序我的要點放置在正確的繞組方向(可能是複雜的東西, ld導致一些奇怪的繪製形狀一旦提供給繪圖API?)
只從最外部點繪製形狀,取決於形狀的實際形狀(可能更復雜,我目前期望的東西)。
任何人都可以在這裏確認或體弱我最後的設想,給我有什麼可以怎麼回事線索,如何解決呢?...
非常感謝:-)
不確定你的具體問題,但想知道你是否已經閱讀過關於控制繞組的文檔...可能會有所幫助,但也許你已經通過它http://help.adobe.com/en_US/ ActionScript 3.0編程AS3/WS1EE3740D-F65C-43bf-9B12-74E34D7D1CBE.html – shaunhusain
更確切地說,'GraphicsPathWinding.NON_ZERO'是你需要爲你的填充樣式設置的。其實,我會用兩層做你想做的,頂層包含光線,底層包含窗口。你將不得不使用BlendMode來獲得所需的效果。 – Vesper
感謝您的答案,但實際上我已經瀏覽了文檔,並且還使用了GraphicsPathWinding.NON_ZERO參數,但結果不會做出我想要的結果......在文檔中,沒有說明繞組方向實際上是定義的,它只表示「渲染器解釋座標的順序」。但是,這是由前兩組座標定義的方向,在解析矢量時不斷重新定義......?我寧願只使用單一的形狀,而不是使用BlendModes來實現這一點,但我仍然不能確切的形狀,因爲我想... – elFlashor