新手程序員在這裏工作,與開羅和快板5
我設計用快板5 2D遊戲,我已經注意到,在快板位圖工作時(從Photoshop中導出的PNG文件實際上...),其旋轉圖像看起來比恆星:rotated meteor
左邊的一個是在原來的方向和右邊的一個旋轉10度。它們有點小,但邊緣質量的差異很明顯。
首先,我會真的想避免創建一個精靈表包括以下原因,所有的不同的旋轉位置:
我有不同的「效果」發生在流星,我的所有其他對象創造這將需要在對象周圍發光。我將在每個物體周圍應用至少6種不同的發光顏色。現在每個流星都需要有30幀的旋轉才能看起來平滑。比方說,我想在遊戲中使用這樣一個可憐的10個不同的對象;那1800個文件就是針對這些對象的!
我寧願集中精力尋找一種更好的方式來顯示比花時間做旋轉圖像。
我試過研究各種各樣的photoshop技術,但最好的我可以拿出來是讓photoshop中的圓稍小,然後讓它'發光'相同的灰色陰影這種解決旋轉問題,但它使流星看起來模糊。
然後我做了一些更多的研究,發現在Allegro 5中可以使用各種混合選項。我嘗試了al_set_blender中所有可能的選項 - 它們都沒有解決鋸齒邊緣的問題。
最後,我再次搜索如何處理這個問題,並在Allegro 5中發現了關於反走樣的this post。正如答案中指出的那樣,有一個反走樣選項可用,但僅限於工作的主要限制當繪製原語到後臺緩衝區時。實際上,實施這將是一大堆工作,並且每次都繪製所有必需的基元似乎效率很低。
什麼吸引了我的注意力在其他職位,然而,此評論:
順便說一句,如果你不需要實時性的遊戲,你也可以掛接到libcairo畫漂亮的矢量圖形。將它與Allegro綁定非常簡單,但這是一個不同的主題。
所以我再次對圖形庫進行了研究,以及它們如何解決我的問題。我看着開羅,SDL,Qt的,ImageMagic,等等,但最後我同意開羅似乎是這份工作的合適工具。
最後,我們到達了原因後:
我的問題是:我怎樣才能「勾開羅」到Allegro 5?
現在,我還沒有和開羅做過任何工作,所以我沒有拘束於此,但是我想繼續使用Allegro,除非真的有很好的理由去切換別的東西。
Allegro有一個簡單而直接的方式來創建顯示並使用allegro命令對其進行繪製。但是開羅有自己的做事方式,而開羅似乎根本不管理展示。我可以想象兩者協同工作的唯一方式是開羅接收繪圖命令,繪製圖像,將圖像保存爲png文件,然後打開allegro功能並在該文件中讀取1幀。這不可能是評論者所掌握的。
反正,隨意批評我的思維過程。我不會被冒犯。如果有一些簡單的事情你覺得我還沒有明白,請賜教。
「只有在繪製原始圖像到後臺緩衝區時纔會工作的主要限制」嗯,你還會在哪裏繪製它?你是否對位圖進行了大量的傳輸,然後你對其他位圖進行傳輸?如果是這樣,你不應該。 – 2012-07-21 09:11:29
你需要問如何解決你原來的問題(在一個單獨的問題)。要做到這一點,我們需要看看你用來渲染的實際代碼是什麼。你把馬車放在馬前。 – 2012-07-21 09:14:05
對不起,我想我不應該直接批評原始圖片。我只是覺得沒人會這麼做,因爲它效率低下。我想我只是假設你有A)每個可能的旋轉角度都有大量的精靈片B)有邊緣混合方法來平滑粗糙的邊緣,但我仍然不知道。 – NauticalMile 2012-07-21 18:37:21