顯示具有 Starling 標籤的文章。 顯示所有文章
顯示具有 Starling 標籤的文章。 顯示所有文章

2013年9月24日 星期二

Starling 1.4 發佈囉!

 Starling 1.4 發佈囉!

http://gamua.com/starling/download/

我快速瀏覽了一下..
這次版本主要是針對框架效能,讓運行速度更快,更有效率。
除了效能外,還多了幾個東西

  • ClipRect  矩形遮罩
  • DisplacementMapFilter  動態扭曲像素濾鏡
  • 針對Lost Context situations的問題處理 用AssetManager可以幫你搞定這問題
  • AssetManager 性能優化
  • 4096x4096以上的素材尺寸支援
  • supportHighResolutions 高解析度素材支援
其他詳情請見官方

2013年9月5日 星期四

在Starling中,如何製作符合各種不同規格裝置的場景 - 以IOS為例子 (二)

原文翻譯至
Managing multiple iOS resolutions with Starling – real world example – Part 2: iPhone 5 and iPad

在Starling中最棒的ㄧ件事就是,你只需要製作一個版本,就可以適用各製種螢幕規格。
在上一篇中,我們實作了一種方法,讓你的APP透過判定是否為高解析螢幕,然後取用合適的素材。
本篇將實作,如何作一個全螢幕(不變形)的畫面,包含 iPhone5 iPad iPad mini 或者是 Retina iPad..
我們先來看看下圖,用這個技術在各個裝置上的成果。

圖中有iPhone3GS iPhone4 iPhone5 iPad 與 iPad3,它們都可以用全螢幕的模式顯示出漂亮的素材(即使是在iPhone5上的怪怪規格也是沒有任何問題)

首先瞭解你的敵人,我們看看各機型的規格(橫向)

iPhone 3G and 3GS: 480×320

iPhone 4 and iPhone 4S: 960×640

iPhone 5: 1136×640 (iPhone請見下方的ps)

iPad, iPad 2 and iPad mini: 1024×768

iPad 3 and iPad 4 (called iPad with retina display): 2048×1536

想在各種規格上都全螢幕顯示意味著每種畫面都是不同的解析度,所以第一件事就是"定義每種不同的場景大小與比例",來讓這件事變的容易瞭解一點。
首先定意比例 :
480 x 320 有 iPhone3G iHpone3GS 另外 iPhone4 與 iPhone4S 他們需要2倍解析度的素材。
568 x 320 有 iPhone5 ㄧ樣需要2倍解析度素材。
512 x 384 有 iPad  iPad2  iPad mini (這些需要2倍解析度素材),另外還有 iPad3與iPad4 (他們需要4倍素材)
這樣分類後我們可以把10種裝置,分成5種規格,但是只有3種螢幕比例。

以下實作主程式 Main,使用Starling,在低品畫質情況上述不同比例下全螢幕的作法。

再來我們再場景上置入各種不同規格的素材,再判定各裝置給與正確的素材。
以上程式,你可以看到如何判定不同裝置來置入適合的素材。
90~112 的 setupDevice,可以告訴我們現在是屬於何種裝置,這個方法跟上一篇談的一樣,ㄧ切變得跟在設定Html網頁的模式ㄧ樣,你不應該根據硬體規格來選擇素材,而應該是根據螢幕的大小與比例來設定正確的素材。

ps.全螢幕設定在 iPhone5上發現的問題 (筆者沒有iPhone5所以也無法作實驗..)

實際上光是這個作法在iPhone5上會有問題,因為無法抓到正確的解析度,除非你放置一個正確的起動圖片。
檔名 Default-568h@2x.png,他是一張640x1130的png (不管是用直式還是橫式)


2013年8月29日 星期四

在Starling中,如何製作符合各種不同規格裝置的場景 - 以IOS為例子 (ㄧ)

原文出處
Managing multiple iOS resolutions with Starling – real world example

製作iOS遊戲時,你要處理各種不同類型的設備(從iPhone 3GS到iPhone 5... 之後可能還會更多)
雖然每個設備都有自己的螢幕規格,但是你應該只需要製作一個版本的遊戲,他必須可以自動將場景調整成必要的規格。
本篇內容將介紹將為各為介紹,使用Starling框架時,如何製作這種機制。

首先我們建立一個基本的Starling專案,並對場景初始化。


第6行定義的場景,這是針對3GS作設定 (480 x 320)
再來是場景 Game.as

建立好了之後輸出看看各種不同規格的樣子..
首先看ㄧ下3GS,沒有任何問題。
在來看ㄧ下iPhone 4..

iPhone 4,規格960x640,畫面只剩下場景的1/4..
再來看看iPhone 5,情況又更糟了..


iPhone5的規格1136x640,不但大小不同,比例也不一樣..

像這樣的情況下,我們介紹如何直接應用ㄧ開始的場景大小(480x320)來符合各種不同規格的螢幕的方法,不管是不是視網膜螢幕都可以直接應用。
修改ㄧ下Main.as

首先重新定義ㄧ下你的viewPort,把stage直接拉大到螢幕的大小。
這種直接拉大stage的方法,可以很快解決上述的問題。
現在我們再來看ㄧ次iPhone 4的情況。
現在遊戲畫面可以涵蓋整個螢幕了,不過解析度確很糟糕..
同樣的,在iPhone 5上面也是一樣的問題。
雖說畫面也正常(也沒有人逼你ㄧ定得解決畫面品質不佳的問題),但擁有視網膜的iPhone使用者也會給你不好的評價。
你可能會用另一種方法,直接把素材解析度增加2倍,好讓遊戲在視網膜螢幕上的效果好ㄧ些,不過這反而對沒有視網膜螢幕的裝置造成負擔,由於素材過於龐大,導致效能不佳,動畫也變得不順暢。
所以我們在加ㄧ些判斷,好讓程式可以針對不同的裝置,使用適當的素材。
程式中,嵌入了ㄧ般用的素材與高解析度的素材,然後去判斷viewPoint的大小來決定用哪一種素材,這種方法不管是3GS或是iPhone4上都可以顯示最適當的素材。
再次輸出到iPhone 4
現在他支援iPhone 4的視網膜螢幕了。
接著輸出到iPhone 5
iPhone 5應用了適當的素材,畫面品質也提高了,不過由於iPhone 5與3GS和iPhone 4比例不一樣,導致畫面兩旁補了黑邊。
下一篇我們再來解決這個問題。

補充:Srarling 1.3 以後設定 viewPoint 可以直接使用RectangleUtil.fit方法設定縮放大小,有機會在介紹。

2013年8月6日 星期二

在Starling舞台中截圖的方法

在Starling中想要截圖,並沒有辦法像以前一樣用bitmapData.draw()的方法截圖。
必須先把圖繪在一個RenderSupport的物件中在去截取它,在此備忘一下作法..
假設我們要裁圖的範圍(0,0,768, 1024)
            // 繪至緩衝
            var support:RenderSupport = new RenderSupport();
            RenderSupport.clear(stage.color, 1.0);
            support.setOrthographicProjection(0,0,768, 1024);
            stage.render(support, 1.0);
            support.finishQuadBatch();
            // 繪至影像
            var result:BitmapData = new BitmapData(768,1024);
            Starling.current.context.drawToBitmapData(result);
運用上述作法,你就可以影像截至result裡面。