Corona SDK游戲開發(fā)實(shí)例(三):處理retina顯示屏
今天,我將開始使用新的工具開發(fā)iPhone游戲:Corona SDK
在OpenGL,OpenAL,Box2D和Lua頂層被創(chuàng)建,Corona讓您可以開發(fā),使用本地IOS特性原生速度運(yùn)行的游戲,如多點(diǎn)觸控,GPS,加速度計(jì),陀螺儀,攝像頭,谷歌地圖,WebKit,以及軟鍵盤。
此外,Corona支持超大量的API,這將讓您為您的游戲添加很多有趣的功能,如廣告,虛擬貨幣,數(shù)據(jù)庫等。
在第一步,我會盡力將我的老Flash游戲Red Flowers 移植到iPhone,將處理iPhone 4的retina顯示模式。
我們會處理兩個不同屏幕尺寸:320 ×480和640× 960。所以,首先要做的就是設(shè)計(jì)了兩個不同的初始頁面,一個正常的和一個retina增強(qiáng)的iPhone模式。
在左側(cè),480 × 320為正常的iPhone上初始視圖,在右側(cè),960 × 640高清retina顯示屏初始視圖。
我把他們保存在一個文件夾,稱他們分別splash.png和splash_hd.png。
請注意,高清圖像和正常圖像的名稱相同,除了_hd后綴。
現(xiàn)在,最基本的Corona項(xiàng)目有三個文件:build.settings其中包括duild-time屬性, config.lua包含運(yùn)行時(shí)屬性, main.lua這是主文件本身。
正如你可以看到Lua擴(kuò)展名,Corona SDK使用的Lua編程語言??赡苣阋呀?jīng)遇到過它,當(dāng)玩魔獸世界的宏和接口時(shí)。無論如何,這并不難,和AS3也沒那么不同。
讓我們來看看build.settings文件:
- settings =
- {
- orientation =
- {
- default = "landscapeRight",
- },
- }
在這里,我只是設(shè)置景觀的方向,因?yàn)檫@游戲就是橫向模式播放。
這是config.lua文件:
- application =
- {
- content =
- {
- width = 320,
- height = 480,
- scale = "letterbox",
- imageSuffix =
- {
- ["_hd"] = 2,
- },
- },
- }
另一種簡單而直觀的的設(shè)置:我定義了游戲的高度和寬度,并設(shè)置縮放模式為“letterbox”。
這些都是可能的動態(tài)縮放設(shè)置:
* none - 關(guān)閉動態(tài)內(nèi)容縮放
* letterbox - 盡可能均勻縮放內(nèi)容,同時(shí)仍然在屏幕上顯示的所有內(nèi)容。這是類似的非寬屏電視機(jī)上觀看寬屏DVD,你可以使用臺下內(nèi)容填充溢出區(qū)域,而不是顯示黑邊。
* zoomEven – 均勻縮放以填補(bǔ)屏幕,同時(shí)保持長寬比。新的屏幕如果有不同的寬高比,有些內(nèi)容可能會出現(xiàn)屏幕外。
* zoomStretch - 內(nèi)容非均勻擴(kuò)展到填滿整個屏幕。所有內(nèi)容將保持在屏幕上,但它可能會縱向或橫向拉長。
然后,當(dāng)圖像需要乘以2以匹配設(shè)備的分辨率,我們定義imageSuffix要使用的后綴。你還記得_hd后綴我們添加到我們的高清初始視圖嗎?就是它。
最后,讓我們寫代碼main.lua:
- display.setStatusBar(display.HiddenStatusBar)
- local bg = display.newImageRect("splash.png",480,320)
- bg.x = bg.contentWidth/2
- bg.y = bg.contentHeight/2
第1行:隱藏狀態(tài)欄
第2行:定義一個變量bg,分配給它的分辨率低初始屏幕的路徑,跟著是大小。這時(shí)圖像會自動顯示,它的起始(中心)與設(shè)備的左上頂角對齊。
第3行:根據(jù)它的寬度,初始視圖水平中心對齊
第4行:對高度做同樣的事情。
請注意X和Y屬性工作方式同AS3,而contentWidth和contentHeight像AS3的寬度和高度的作用。
一旦所有的文件都保存在同一文件夾,就到了運(yùn)行在iPhone和iPhone4模式模擬器的時(shí)候。
最后,我們有了我們的初始視圖并起作用。下一次,我會添加交互。