陳擎文教學網:手機遊戲引擎:Solar2D(Corona SDK)
資源
  scratch scratch雲端平台
  上課黑板 線上黑板 上課即時貼
  Goole 輸入法(Input software) Goole輸入法(Input:exe) Goole 輸入法(Input:zip) online goole input(中文) online goole input(英文)
 

 
chp1.安裝Solar2D,安裝程式碼編輯軟體
目錄 1.簡介 2.Corona SDK有名的案例 3.Solar2D/Corona SDK簡介影片 4.安裝,或線上使用
5.安裝程式碼編輯軟體(vscode)
範例 範例4:奔跑吧!台北(遊戲) 範例5:construct遊戲:puzzle game 範例6:construct遊戲:kiwi story 範例7:construct遊戲:Glokar
範例8:construct遊戲:小精靈 範例9:construct遊戲:俄羅斯方塊 範例10:construct遊戲:高爾夫球 範例11:construct遊戲:快打旋風(按D攻擊)
範例12:construct遊戲:憤怒豬 範例13:construct遊戲:拼圖 範例14:construct遊戲:賽車比賽 範例15:construct遊戲:找相同的牌

1.簡介

1.Solar2D簡介:
Solar2D (原 Corona SDK) 是一套跨平台的行動軟體框架 (cross-platform mobile framework),主打電腦遊戲 (mobile games),但也可以用來製作應用程式 (business applications)。
Solar2D是免費和開源, 跨平台的軟體開發套件

SOLAR2D (曾經是 Corona SDK) 是一個跨平台(iOS,Android,Kindle,Nook...)的平板或者手機應用程式開發工具,全球使用Corona SDK 開發出來的應用程式已經被使用超過數十億次,不論是想要製作自己的電子書或者新奇好玩的遊戲,實用的工具APP等等,Corona SDK 是一個最方便且入門簡單的第三方開發工具

Corona SDK最初由電暈實驗室公司,弗拉德·謝爾班(Vlad Shcherban)所開發。它於2009年下半年發佈,它允許軟體程式師建立2D移動應用,可以跨平台(包括:iOS, 安卓,windows桌面應用,Linux,蘋果系統,以及用於蘋果電視, 消防電視和安卓電視)。
Solar2D使用集成分層於C ++/的OpenGL構建圖形應用程式。
該軟體具有兩種操作模式:Solar2D Simulator和Solar2D Native。
(1)Solar2D Simulator,可以直接從Solar2D Simulator構建應用程式。
(2)Solar2D Native:允許您將Lua代碼和asset集成到一個 Xcode 或者 Android Studio 專案來建立您的應用程式,並加入原生功能。

2020年,該引擎從Corona SDK重命名為Solar2D。這樣做是為了回應Corona Labs的關閉,以及 2019冠狀病毒病大流行
Corona SDK是一個跨平台的2D引擎,底層是OpenGL ES
SDK分成Starter、Basic、Pro、Enterprise這4個版本,其中Starter版是免費的

3.支援平台:
包括iOS,Android,Kindle,Apple TV,Android TV,macOS和Windows

4.使用的程式碼:Lua
Lua是一種開源指令碼語言,旨在羽量級,快速且功能強大。
Lua當前是遊戲中領先的指令碼語言
並已在Warcraft,Angry Birds,Civilization和許多其他流行的特許經營中使用

5.費用:
完全免費
沒有任何隱藏的費用,費用或特許權使用費。
無論您是獨立開發人員還是大型發行商,您都不會為核心功能付費。

6.討論社區
  加入一個充滿活力的社區,成千上萬的開發人員使用Solar2D在論壇或Discord聊天中進行即時遊戲。

7.開源的
  所有原始程式碼和資源都可以在MIT許可下獲得。

8.軟體優勢:
  專業程式師,移動應用程式開發人員,企業,學校和大學使用Solar2D來開發引人入勝的遊戲
  教育性應用程式,業務/實用程式應用程式等。
  對於剛剛起步的人來說,Solar2D很容易學習,但對於有經驗的開發人員來說,Solar2D足夠強大。
  借助Solar2D,您可以獲得以下所有好處:
  一個完整的框架,可讓您創建遊戲,教育應用程式,業務/實用程式應用程式等。
  跨平臺—僅使用一個代碼庫即可為移動,臺式和聯網電視設備開發。
  開發使用Lua(一種功能強大且易於學習的指令碼語言)完成。
  通過即時設備測試優化您的工作流程 -只需構建和部署一次應用程式
  然後幾乎就可以在本地網路上的設備上立即查看代碼/資產更新。
  超過1000種API使您能夠將您的想法轉變為令人驚歎的創新應用程式體驗。
  外掛程式使開發人員可以訪問其他功能,工具和服務。
  只需幾行代碼,即可使用各種外掛程式來幫助您成功。
  花時間製作出色的應用程式,而不用實施協力廠商軟體發展套件!
  受諸如Solar2D Marketplace和Solar2D Plugins的協力廠商市場支持。

2.Corona SDK著名新聞
(1)14歲少年用Corona SDK開發《Bubble Ball》打敗《憤怒的小鳥》
Corona SDK開發最著名的案例是Bubble Ball(泡泡球)遊戲,由一位年僅14歲的小男生製作,在上傳到Apple Store兩周後,即打敗長期占據排行榜第一名的Angry Bird(憤怒鳥)。

http://gamerboom.com/archives/14044
熱門手機遊戲《憤怒的小鳥》節日版在上週四被趕下App Store免費應用的冠軍寶座,這個強勁的競爭對手並沒有什麼顯赫的背景,它只是一款出自14歲少年之手的物理類遊戲《Bubble Ball》。

《Bubble Ball》的開發者Robert Nay現在還只是一名八年級的學生,他在媽媽的幫助下,用自己開發的首款iPhone遊戲打敗了《憤怒的小鳥》節日免費版。據遊戲邦瞭解,《Bubble Ball》僅在上週四當天就創造了40萬次下載量,自12月29日在App Store發行以來,該遊戲的總下載量已達150萬次。


2. 84歲老先生是怎樣設計出iPad上的益智遊戲?
而高齡84歲的老爺爺,也能輕鬆設計出可在iPad上玩的Dabble(英文拼字)遊戲。


3.他們都有兩個共通點:不會寫程式、沒有受過專業訓練
Corona SDK最迷人的地方就是操作簡易,不必寫程式就能做出App,
而如果想要比較複雜的功能或酷炫的效果,也有內建很多遊戲範本資源讓你直接套用,真正花在弄懂程式碼的時間少之又少。更厲害的是,它支援iOS、Android等行動裝置跨平台開發,也就是說,同一支App不必為了不同的手機系統而重新開發一次。

3.Solar2D/Corona SDK簡介影片:
(1)Solar2D/Corona SDK簡介影片:
Solar2D簡介影片


4.如何使用Solar2D方式:
(1)方法1:下載,安裝在電腦上:
Solar2D官網
Corona SDK官網
(兩個網站都可以安裝)

(2)安裝Solar2D的教學影片:
安裝Solar2D的教學影片

5.安裝程式碼編輯軟體(vscode):
(1)solar2D可以使用的程式碼編輯軟體:
Solar2D官網的說明:

Text Editors
You'll need a text editor or IDE to write code for your Solar2D projects. If you don't already have a favorite text editor, the following options are recommended:
Editor Add-On Package
Sublime Text Solar2D Editor
Atom autocomplete-corona
Visual Studio Code Solar2D-companion
Notepad++  
ZeroBrane Studio  
Vim


(2)上課使用的程式碼編輯軟體是:vscode:
A.到官網安裝vscode

B.然後在vscode內,再安裝extensions:Lua
Lua language support for Visual Studio Code

C.然後在vscode內,再安裝extensions:Solar2d-companion
Tools and snippets for quick development for games using solar2d

 

 
chp2. Solar2D的教學資源
目錄 1.Dr. Rafael Hernandez的17單元教學影片 2.簡易入門教學 3.Solar2D程式設計教學網頁 4.書籍:遊戲自己做!Corona SDK跨平台App開發設計實戰
4.網頁:官網的get started共8系列教學 5.網頁:官網的API Reference各種指令手冊 6.網頁:官網的Tutorials教程 7.網頁:官網的Developer Guides開發者指南 8.網頁:官網的論壇討論區forums

1.

1.Dr. Rafael Hernandez的17單元教學影片:
Tutorials for the Corona SDK as authored by Dr. Rafael Hernandez

影片:Corona SDK: 01 Getting Started
影片:Corona SDK: 02 New Images
影片:Corona SDK: 03 Retina Images
影片:Corona SDK: 04: Basic Touch Handling
影片:Corona SDK: 05: Advanced Touch Handling
影片:Corona SDK: 06: Simple Timers
影片:Corona SDK: 07: Simple Audio
影片:Corona SDK: Bonus: Preparing Sound
影片:Corona SDK: Game 01: Orb Smasher
影片:Corona SDK: 08: External Modules
影片:Corona SDK: 09: Simple Physics
影片:Corona SDK: 11: Custom Fonts
影片:Corona SDK: 10: Screen Transitioning
影片:Corona SDK: Game 02: Balloon Burst, Part 1
影片:Corona SDK: Game 02: Balloon Burst, Part 2
影片:Corona SDK: Game 02: Balloon Burst, Part 3
影片:Corona SDK: 12: x and yReference
影片:Corona SDK: 13: Custom Physics Bodies
影片:Corona SDK: 14: Simple Physics Joints
影片:Corona SDK: 15: Databases: Read
影片:Corona SDK: 16: Databases: Insert & Update
影片:Corona SDK: 17: Module: Advanced Timer

2.

2.簡易入門教學:
(1)影片:CoronaSDK圖文顯示

(2)影片:超簡單的手機App開發教學 Corona SDK 01

3.

3.[Solar2D] 程式設計教學網頁:
網頁:[Solar2D] 程式設計教學網頁

 

 
chp3.各種2D遊戲引擎比較
目錄 1.較受歡迎的3D遊戲引擎:Unity,Unreal 2.較受歡迎的2D遊戲引擎:Godot、Defold、Cocos Creator、Solar2D
3.Solar2D 4.Godot 5.Defold 6.Cocos Creator
7.JS-based Game Engine (Pixi, Phaser) 8.國外深度比較2個較好的遊戲引擎:Godot,Defold 9.綜合評估要選用哪種遊戲引擎
1 1.3D遊戲較受歡迎的兩個引擎:Unity,Unreal
(參考:2021年是自学游戏开发最好的年代!告訴你應該选Unity还是虚幻引擎?
(參考:不写代码做那样的游戏!分享使用Unity"蓝图"工具
(參考:我学编程了!真认真学了,可还是学不会……书看不懂、怎么办?
(參考:開發遊戲的建議

(1)Unity:
☎若要寫程式碼:c#
☎若要用可視化工具(編程):bolt(2021年收購bolt,開始預設支援)
☎若要用可視化工具(狀態機):playmaker(還要外掛插件)
☎優點:輸出3D,2D(行動app)
☎優點:使用界面直觀,容易上手

(2)Unreal:
☎若要寫程式碼:c++
☎若要用可視化工具(編程):blueprint
☎優點:畫面能夠渲染地非常有質感,藝術氛圍
☎缺點:C++寫程式不容易上手
☎缺點:輸出2D(行動app)較弱


2.較受歡迎的2D遊戲引擎:Godot、Defold、Cocos Creator 和 Solar2D
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

3.Unity不適合開發:2D休閒類遊戲
原因:
☎雖然很強大,但對於一個休閒遊戲來說,這有點矯枉過正。
☎個學習曲線較長
☎複雜,對初學者來說令人困惑。
☎還有其他引擎可以更簡單、更精簡地進行 2D。
☎帶有閃屏的 Unity 遊戲因低質量遊戲而臭名昭著。
☎C#在低端設備上的性能運行不佳(Web 構建在移動設備上)

2 2.較受歡迎的2D遊戲引擎:Godot、Defold、Cocos Creator 和 Solar2D
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better


2.2D 休閒遊戲的需求:
☎高性能引擎,構建尺寸盡可能小,
☎腳本程式語言更簡單易用。
☎html5為主要平台,android次之。
☎無需涉及編譯或本機移動工具。
☎自由開源是首選。因此,沒有前期成本並且可以靈活地捐贈/貢獻給開發。
☎支持Metal,以防需要在蘋果平台上發布。


3.2D 休閒遊戲的推薦:
經過一些初步研究,推薦是:Godot、Defold、Cocos Creator 和 Solar2D。

3 3.Solar2D
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

2.Corona SDK/Corona SDK:
(1)優點:
☎Solar2D 是 Corona SDK 的開源分支。
☎它是一款出色且經過實戰測試的引擎,
☎易於使用且文檔非常好。
☎Solar2D 使用 Lua。構建檔案大小很好(不大),對於 armv7 和 64 位,可能大約 6MB APK。我用它做了一個簡單的遊戲。即使在低端設備中,性能也沒有問題。
☎社區雖小但很好。他們有論壇和 Discord。

(2)缺點:
☎沒有可視化編輯器(必須用簡單的純代碼撰寫一切物件,與動作事件)
☎缺點,雖然支持 html5 構建,但它仍然是測試版,所以有一些問題。
☎Vulkan/Metal 版本也沒有準備好。

(3)請注意,幾個不錯的 Lua 引擎:
☎Solar2D
☎Gideros
☎Love2D。
它們都是開源的,可以與 Solar2D 相媲美。
Solar2D 更精緻,文檔更好。


4 1.Godot
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

2.Godot:
(1)優點:
☎這個引擎最近很流行。它就像一個開源版本的 unity。
☎很多文章說,Godot比 Unity 做 2D 更好。
☎Godot 是完全開源的,擁有最寬鬆的許可。

☎主要語言是GDScript(類似python),
☎但也支持C#、C++等。不同的語言有不同的成熟度和性能。

☎功能豐富,同時支持 2D 和 3D。
☎有畫面編輯器,小巧且快速。包含大量電池。具有內置動畫/骨骼、磁貼編輯器等。
☎它也是可擴展的。

☎教學文檔很好。還有很多文章和 YouTube 教程。

☎構建檔案大小 APK 大約為 7.1-11.8MB(編譯時可以剝離模塊)。
☎對於 html5,最小的(壓縮的)大約是 2.9MB。

☎它的開發非常活躍,由於它的受歡迎程度,它的未來看起來很光明。

(2)缺點:
☎GDScript 是官方語言,它不是 Python,人們說它性能不佳。
☎C# 支持看起來不錯,但會使構建大小更大。


5 5.Defold
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

2.Defold:
(1)優點:
☎Defold 是一個基於 Lua 的遊戲引擎,帶有可視化編輯器。
☎目前已經“開源”open source,這讓它更具吸引力。

☎它是 King(超級流行的 Candy Crush Saga 背後的公司)的一部分,現在在 Defold 基金會下獨立。

☎功能高度完善,並註意高性能/低引擎開銷。

☎構建規模令人印象深刻。
☎html5 構建低至 800kb 左右(gzipped)。
☎apk 大小 ~1.7mb。

☎文檔很好。它要求我們按照 defold 的方式做事(比如物件之間的傳遞參數)。

☎為了成熟,Kings 在他們自己的一些流行遊戲中使用它(不過 Candy Crush Saga 使用不同的引擎)。因此,Defold 在這種規模上進行了實戰測試。

☎關於支持,它有小而活躍且響應迅速的社區。

(2)缺點:


6 6.Cocos Creator
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better
(3)Cocos Creator 極速入門

2.Cocos Creator:
(1)優點:
☎使用界面非常類似Unity(兩者很像,用起來非常容易彼此熟悉上手)
☎而unity最大的問題個人覺得就是這個APK打包出來體積大的嚇人。
☎但cocos HTML 的構建檔案大小是最好的(很小)。只有 ~155kb gzipped 因為它使用原生 js。

☎unity:現在傾向用於3d遊戲和虛擬實境,這兩塊
☎而cocos:終究還是華人世界2D遊戲的首選開發引擎(尤其它支援微信的小遊戲,也支援facebook的小遊戲)

☎非常適合 Facebook 即時遊戲或聊天應用程序的嵌入式遊戲。
☎最小的 apk 大約是 6mb。如果同時包含 armv7 和 arm64bit 庫,則為 11MB。

☎請注意,它會在移動設備上生成一個真正的本機應用程序。不僅僅是像 Apache Cordova 這樣的混合應用程序。

☎它來自流行的 Cocos2d-x 引擎的製造商,
☎但使用 Visual IDE ala Unity,並使用 javascript。
☎編輯器/IDE 是基於 Electron 的,沒有官方的 Linux 支持。

☎IDE 不會嘗試做所有事情。它甚至沒有內置代碼編輯器。
☎它可以很好地與外部代碼編輯器(如 VS Code)和流行的 3rd 方 2D 工具(如 tiled 和 Dragonbones/spine)集成。

☎在中國和東南亞,它很受歡迎並被騰訊等大型出版商使用,
☎因此它看起來在這種規模上經受了考驗。

☎對於社區來說,它有一個論壇和 Discord,看起來很小,但足夠活躍。


(2)缺點:
☎很難找到關於這個引擎的英文文章/資源(對外國人不利)。
☎較少的英語教程,也許它只在華人世界流行(對外國人不利)。

☎若要構建本機版本,需要設置所有本機工具堆棧並對其進行編譯。
☎因此,這不是即時的一鍵式過程。

☎此外,它是半開源的(編輯器部分是專有的,而引擎是開源的,基於 Cocos2D-X 的 fork。但是,它不能在沒有 IDE 的情況下使用)


3.Cocos Creator特色:
☎Cocos 引擎團隊敏銳地發現了:手遊頁遊化這一趨勢,
☎並做出了一個大膽的嘗試:開發類 Unity 工作流的一體化工具 Cocos Creator,
=>Cocos Creator 的工作流借鑑了 Unity 等成熟引擎工具的設計方案,這使得用過 Unity 引擎的開發者可以迅速上手 Cocos Creator 而沒有不適感。
=>開發者可以在 Cocos Creator 和 Unity 兩者間隨性轉換,使用久了,你或許會發現,做 3D 選用 Unity,做 2D 選用 Cocos Creator,兩者猶如同一個產品

☎它以頁遊主流指令碼: JavaScript 為開發語言,
=>Cocos Creator 使用 JavaScript 作為指令碼語言,一則降低了開發難度和開發成本,同時也方便執行和除錯,輕鬆涵蓋了 H5 領域的產品開發

☎能夠同時打包:三端產品【android, ios, html】,
☎還可幫開發者迅速過渡到當前流行的:【 H5、微信小遊戲、Facebook小遊戲】。
=>Facebook小遊戲 已授權 Cocos 為旗下 H5 遊戲平臺合作伙伴

☎Cocos Creator 提供了一套以內容創作為核心的【所見即所得】的編輯工具,
☎擁有 All in One 一站式服務體系:
=>整個遊戲產品開發過程中,遊戲創作團隊完全可以身處其中,通過其所建立的工作流對遊戲的資源管理、場景設計、介面佈局、精靈建立、邏輯控制、打包執行與釋出做全方位的把控

☎元件化
=>Cocos Creator 基於元件化設計,功能模組易於擴充套件。
=>該模式使開發者不再拘束於編輯器本身這個容器,可以按需對編輯器進行外掛式擴充套件,
=>用 HTML + JavaScript 等前端通用技術輕鬆擴充套件編輯器功能


4,Cocos Creator 的技術架構如下圖所示


5,以資料驅動工作流為核心的開發理念,整個工作流程如下圖所示


6,缺點:
Cocos Creator 也有不足的地方,比如 3D 功能仍處於初級研發階段,未能形成生產力

7,國內的facebook小遊戲,只要是Cocos Creator開發的遊戲


7 7.JS-based Game Engine (Pixi, Phaser, etc)
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

2.JS-based Game Engine (Pixi, Phaser, etc):
(1)優點:
☎它們最適用於 html5。


(2)缺點:
☎但對於移動版本,您必須將其包裝為像 Cordova 這樣的混合應用程序,因此運行速度慢,即時反應差

8 8.國外深度比較2個較好的遊戲引擎:Godot,Defold
參考文章:
(2)Godot vs Defold, Which One is Better

1.特色的比較:
(1)Godot:
☎Godot 有更多的特點。發展非常迅速,似乎雄心勃勃。
☎它不斷添加越來越多的功能。包括大量電池。
☎但有時也會讓人不知所措和令人困惑。
☎Godot IDE,您可以在其中管理和編輯資產、場景、代碼等
(2)Defold:
☎Defold 似乎更準系統,並專注於核心功能。例如,它沒有動畫時間線編輯器,因此您將依賴脊椎或龍骨等 3rd 方。
☎Defold 有類似 Godot 的 IDE,但更簡單


2.支持3D的比較:
(1)Godot:
☎Godot 內置了 3D。人們正在等待 Godot 4.0。
(2)Defold:
☎Defold 的 3D 支持有限。我認為開發人員仍在努力改進它。


3.背後資金的比較:
(1)Godot:
☎這對軟體壽命至關重要。
☎Godot 由社區資助。它是軟件自由保護協會的成員,也有企業贊助商。
☎據我所知,這家大型科技公司還為某些功能的開發人員提供贊助,例如:Microsoft 提供 C# 支持,Mozilla 將 Godot 編輯器引入網絡。有趣的是,Godot 還通過 Epic MegaGrant 從 Epic Games 獲得了資金。 Epic 是 Unreal Engine 的製造商,這是一種商業(非直接)競爭遊戲引擎。
(2)Defold:
☎Defold 是 King, Company 的一部分,該公司因 Candy Crush Saga 而聞名。但現在它在自己的 Defold 基金會下獨立了。但是,King 仍然支持它作為企業贊助商。所以,資金看起來有點類似於Godot。


4.編輯器平台支持的比較:
☎相同的。兩者都適用於 Windows、Linux 和 macOS


5.編輯器大小的比較:
(1)Godot:
☎Godot 有一個較小的可下載文件。但是當你想導出到平台時,你需要下載額外的包。 Defold 已經包含了這個,所以我認為大小是可比的。
☎Godot 的編輯器感覺很輕巧。
☎他們的 UI 不是原生的,因為 Godot Editor 實際上是 Godot Games,這實際上非常酷。
(2)Defold:
☎Defold 在 JVM 下運行,所以感覺有點重(慢)。


6.支持的輸出平台的比較:
(1)Godot:
☎Godot:Linux、macOS、Windows、BSD、Android、iOS、BlackBerry 10、HTML5、UWP。沒有官方控制台支持,但可以通過第 3 方(Switch、PS4、Xbox)完成
(2)Defold:
☎Defold:Android、iOS、macOS、Linux、Windows、HTML5、Nintendo Switch。


7.輸出構建大小的比較:
(1)Godot:
☎兩個引擎都允許您剝離不必要的部分以減少膨脹。
(2)Defold:
☎但這是 Defold 真正閃耀的地方,它可以產生令人印象深刻的小型構建尺寸。低至 1.6MB APK 大小和 734kb html5(gzipped)
☎Defold 小尺寸使其非常適合網頁遊戲,它更接近於像 Phaser 這樣的原生 JS 引擎。

8.程式語言的比較:
(1)Godot:
☎Godot 以 GDScript 作為主要語言。語法類似於 Python,但它不是 Python。我們也可以使用其他語言進行編碼:C#、C++、Rust、Nim、JS 等。
(2)Defold:
☎Defold 使用 Lua。


9.人氣的比較:
(1)Godot:
☎Godot 在忠實和狂熱的用戶群中更受歡迎。它具有良好的勢頭和品牌知名度。它被稱為統一的開源替代品
(2)Defold:
☎Defold 目前的用戶群較小,但他們的論壇友好且樂於助人。希望它的社區也在不斷發展。


10.結論:
☎Godot:適用於桌面遊戲或 3D 桌面遊戲。
☎Defold:適用html5 和手機遊戲,在這些地方,尺寸和性能很重要。

9 9.綜合評估要選用哪種遊戲引擎
參考文章:
(1)Finding the Perfect 2D Game Engine
(2)Godot vs Defold, Which One is Better

1.若在國外工作的角度:國外有人專門評估要選用哪種遊戲引擎:
(1)3D遊戲:Unity,Unreal
(2)2D休閒遊戲:Godot、Defold


2.若以在台灣就業的角度:來評估要選用哪個遊戲引擎:
☎方法:到104人力銀行網頁查詢
☎查詢結果(2021/11/19):
(1)Unreal:找到 20 個Unreal為主要標題的相關工作
(2)Unity:找到 88 個Unity為主要標題的相關工作
(3)Solar2D:找到 0 個Solar2D為主要標題的相關工作
(4)Corona SDK:找到 0 個Corona SDK為主要標題的相關工作
(5)Godot:找到 0 個Godot為主要標題的相關工作
(6)Defold:找到 0 個Defold為主要標題的相關工作
(7)Cocos Creator:找到 47 個Cocos Creator為主要標題的相關工作
(8)Construct:找到 0 個Construct為主要標題的相關工作
(9)Scratch:找到 4 個Scratch為主要標題的相關工作
(10)app Inventor :找到 2 個app Inventor 為主要標題的相關工作

☎結論(以台灣的就業市場來看):
(1)3D遊戲引擎:首選Unity,次選Unreal
(1)2D休閒遊戲引擎(網頁遊戲引擎):首選Cocos Creator

 

 
chp4. 觀摩各種Solar2D範例
目錄 1.下載官網提供的demo範例 2.讀入Solar2D軟體內附的sample範例

1

1.下載官網提供的demo範例:
(1)下載demo範例


2

2.讀入Solar2D軟體內附的sample範例:

下載demo範例


(1)sample/physics/bridge:
點按石頭,會消失
點按繩子,會斷


(2)sample/physics/Bullet:磚塊打鋁罐

打開程式碼main(C:\Program Files (x86)\Corona Labs\Corona\Sample Code\Physics\Bullet\mian) 修改程式的參數:丟磚塊的力道變小:applyForce( 120
修改程式的參數:丟磚塊的力道變大:applyForce( 3200
第51行:
bricks[n]:applyForce( 1200, 0, bricks[n].x, bricks[n].y )

(3)sample/physics/Chains:球打鐵鍊

打開程式碼main(C:\Program Files (x86)\Corona Labs\Corona\Sample Code\Physics\Chains\mian) 修改程式的參數:把彈跳係數變大:bounce=0.5
修改程式的參數:把彈跳係數變大:bounce=2.5
第51行:
physics.addBody( link[j], { density=2.0, friction=0, bounce=2.5 } )


 

 
chp5.Solar2D使用的程式(Lua,API)
目錄 1.Lua參考資源 2.Solar2D官網提供的所有API函數庫

1

1.Lua參考資源:
(1)Lua教學影片1: Lua教學影片1

(2)Lua教學影片2: 一次搞懂Lua所有基本語法

(3)Lua教學網站3: w3school的Lua教學(中文)

(4)Lua教學網站4: w3school的Lua教學(英文)

(5)Lua官網的教學5: Lua官網的教學(英文)


2

2.Solar2D官網提供的所有API函數庫:
(1)API Reference各種指令手冊:
5.網頁:官網的API Reference各種指令手冊



(2)其它教學資源:
4.網頁:官網的get started共8系列教學

(3)其它教學資源:
6.網頁:官網的Tutorials教程

(4)其它教學資源:
7.網頁:官網的Developer Guides開發者指南

(5)其它教學資源:
8.網頁:官網的論壇討論區forums


 

 
chp6.使用Gumbo網頁建立UI
目錄 1.Gumbo工具的網址 範例6-1:使用gumbo建立顯示圖片與文字的app 範例6-2:使用gumbo建立落下會反彈的箱子

1

1.Gumbo工具的網址:
Gumbo網址

注意1:這個Gumbo工具必須要安裝微軟公司開發的外掛套件:silverlight
注意2:但是自從2021年後,微軟已經停止支援silverlight的開發了,甚至在微軟的官網也無法下載
解決方法:可以到一些軟體下載網站去下載,例如:
(1)軟體網站下載1
(2)軟體網站下載2
(3)軟體網站下載3
(4)google drive下載4

注意3:目前只有I.E.瀏覽器可以執行Gumbo,其它的都已經不能使用了


2

範例6-1:使用gumbo建立顯示圖片與文字的app:
1.下載圖片檔案:6-1素材檔案

2.用I.E.瀏覽器開啟Gumbo工具網頁:
Gumbo網址

3.Setting:320x480


4.Add new object:world.jpg


5.Add new object:Icon-60.png(置於左上角)
注意:這裡不要去設定右邊屬性的reference point,否則會出現錯誤(因為新版軟體不支援這個參數)


5.Add new object:Icon-60.png(置於右上角)


6.Add new object:Icon-60.png(置於左下角)


7.Add new object:Icon-60.png(置於右下角)


8.Add new object:Icon-60.png(置於正中央)


9.將Gumbo輸出Lua程式碼:再將程式碼貼到solar2D的專案main裡面


10.開啟Solar2D新的專案,打開main,貼上Lua程式碼:
下載程式碼


11.使用vscode開啟main:
目錄:C:\Users\TA312\Documents\Corona Projects\s6-1



12.把素材檔案複製到main同一個目錄:
目錄:C:\Users\TA312\Documents\Corona Projects\s6-1


13.執行結果,出現錯誤:

原因:dispObj_3:setReferencePoint( display.TopRightReferencePoint )
原因:gumbo所輸出的指令,是舊版的,現在新版solar2D已經不能執行舊版指令
方法:刪除這一行
修改程式碼:修改程式碼


14.執行結果:


2

範例6-2:使用gumbo建立落下會反彈的箱子:
1.下載圖片檔案:6-2素材

2.用I.E.瀏覽器開啟Gumbo工具網頁:
Gumbo網址

3.Add new object:bkg_clouds(name: water)


5.Add new object:ground.png(name: ground)


5.Add new object:crate.png(name: box)


9.將Gumbo輸出Lua程式碼:再將程式碼貼到solar2D的專案main裡面

10.開啟Solar2D新的專案,打開main,貼上Lua程式碼:
下載程式碼

11.使用vscode開啟main:
目錄:C:\Users\TA312\Documents\Corona Projects\s6-2

12.把素材檔案複製到main同一個目錄:
目錄:C:\Users\TA312\Documents\Corona Projects\s6-2


13.執行結果:


 

 
chp7. 使用全程式碼建立專案
目錄 1.Solar2D的玩家都是使用全程式碼建立專案 範例7-1:顯示圖片與文字 範例7-2:落下會反彈的箱子字 範例7-3:按了按鈕會有聲音

1

1.Solar2D的玩家都是使用全程式碼建立專案
例如:Dr. Rafael Hernandez的17單元教學影片:

影片:Corona SDK: 01 Getting Started
影片:Corona SDK: 02 New Images

他們都沒有使用gumbo工具來設定UI
而全部的UI都還是用程式碼建立

程式碼指令,可以參考:5.網頁:官網的API Reference各種指令手冊

2

範例7-1:顯示圖片與文字
1.下載圖片檔案:7-1素材


2.程式碼指令,可以參考:5.網頁:官網的API Reference各種指令手冊
顯示圖片的API指令說明
顯示文字的API指令說明
RGB色碼

3.程式碼:程式碼

4.執行結果:


2

範例7-2:落下會反彈的箱子
1.下載圖片檔案:7-2素材


2.程式碼指令,可以參考:5.網頁:官網的API Reference各種指令手冊
顯示圖片的API指令說明
設定物理效果的API指令說明

3.程式碼:程式碼

4.執行結果:


exp7_3

範例7-3:按了按鈕會有聲音
1.下載圖片檔案:Gumbo網址


2.程式碼指令,可以參考:5.網頁:官網的API Reference各種指令手冊
顯示圖片的API指令說明

3.程式碼:程式碼

4.執行結果:

 

 
chp7. 時間計算與倒數
目錄 專案7-1:計算魚吃到飼料需要多少時間 專案7-2:倒數5秒後開始賽跑

exp7_1

專案7-1:計算魚吃到飼料需要多少時間
成果圖片成果網頁
角色設計
腳本設計a腳本設計b腳本設計c
專案成果檔案

exp7_2

專案7-2:倒數5秒後開始賽跑
成果圖片成果網頁
角色設計
腳本設計a腳本設計b腳本設計c腳本設計d
專案成果檔案

 

 
chp8.不斷運動的場景
目錄 1.不斷運動的場景有兩種方法 專案8-1:重複移動的雲朵(造成鳥飛效果) 專案8-2:連續運動的背景(造成馬跑效果)

1.

1.不斷運動的場景有兩種方法:
(1)幾個小圖形,重複循環運動(改變位置,大小,透明度),造成流動效果 (2)數個連續背景圖片,接續向左移動,造成角色移動的效果

exp8_1

專案8-1:重複移動的雲朵(造成鳥飛效果)
成果圖片成果網頁
角色設計
腳本設計a腳本設計b腳本設計c腳本設計d
專案成果檔案

exp8_2

專案8-2:連續運動的背景(造成馬跑效果)
成果圖片成果網頁
角色設計
(1)設定馬跑的腳本:
腳本設計a腳本設計b
(2)從舞台匯出一張背景圖片,匯入角色區:
腳本設計c腳本設計d腳本設計e腳本設計f腳本設計g
(3)幫4張圖片設定重複接續顯示的程式腳本:
腳本設計h腳本設計i腳本設計j腳本設計k
專案成果檔案

 

 
chp9. 重力加速度與憤怒鳥
目錄 1.自由落體,拋物線 專案9-1:計算足球自由落體到地面所需的時間 專案9-2:有起始速度的拋物線丟球,形成拋物線 專案9-3:有起始速度的拋物線丟球,打中目標則得分(類似憤怒鳥)

1.

1.重力加速度:
(1)直接向下的重力加速度:形成自由落體
(2)有起始速度的移動自由落體:形成拋物線
加速度,速度,距離的關係公式:

exp9_1

專案9-1:計算足球自由落體到地面所需的時間(y2=y1+(gt^2)/2)
成果圖片成果網頁
角色設計
腳本設計專案成果檔案

exp9_2

專案9-2:有起始速度的拋物線丟球,形成拋物線
加速度,速度,距離的關係公式:

成果圖片成果網頁
角色設計
腳本設計a腳本設計b
專案成果檔案

exp9_3

專案9-3:有起始速度的拋物線丟球,打中目標則得分類似(類似憤怒鳥)
加速度,速度,距離的關係公式:

成果圖片a成果圖片b成果網頁
角色設計
腳本設計a腳本設計b腳本設計c
專案成果檔案

 

 
chp10. 綜合應用
目錄 專案10-1:通關電流急急棒 專案10-2:多關卡的電流急急棒
專案10-3:簡易乒乓球 專案10-4:逐漸加快的乒乓球,得分30過關 專案10-5:乒乓球打寶物,得分7分過關
專案10-6:憤怒鳥可以飛多遠(簡易詢問輸入力道,角度) 專案10-7:憤怒鳥可以飛多遠(複雜設定力道,角度)

exp10-1

專案10-1:通關電流急急棒
下載關卡背景圖
成果圖片成果網頁
角色設計
腳本設計a

腳本設計b腳本設計c
腳本設計d腳本設計e
腳本設計f腳本設計g腳本設計h
專案成果檔案

exp10_2

專案10-2:多關卡的電流急急棒
(1)複製專案10-1,修改名稱為專案10-2
(2)
成果圖片a成果圖片b成果網頁
角色設計
腳本設計a腳本設計b腳本設計c
腳本設計d腳本設計e
腳本設計f腳本設計g
腳本設計h腳本設計i
專案成果檔案

exp10_3

專案10-3:簡易乒乓球
成果圖片成果網頁
角色設計
腳本設計a腳本設計b腳本設計c
腳本設計d腳本設計e
腳本設計f
專案成果檔案

exp10_4

專案10-4:逐漸加快的乒乓球,得分30過關
(1)複製專案10-3,修改名稱為專案10-4
(2)
成果圖片成果網頁
角色設計
腳本設計a
腳本設計b腳本設計c
腳本設計d
專案成果檔案

exp10_5

專案10-5:乒乓球打寶物,得分7分過關
(1)複製專案10-3,修改名稱為專案10-5
(2)
成果圖片a成果圖片b成果網頁
角色設計a角色設計b
腳本設計0
腳本設計a腳本設計b
腳本設計c腳本設計d腳本設計e
腳本設計f腳本設計g腳本設計h腳本設計i
專案成果檔案

exp10_6

專案10-6:憤怒鳥可以飛多遠(簡易詢問輸入力道,角度)
成果圖片a成果圖片b成果圖片c成果網頁
角色設計
腳本設計a腳本設計b腳本設計c
專案成果檔案

exp10_7

專案10-7:憤怒鳥可以飛多遠(複雜設定力道,角度)
(1)如何選定力道:當力道燈閃到目標值時,點按舞台一下
(2)如何選定角度:當箭頭旋轉目標值時,點按舞台一下
成果圖片成果網頁
角色設計
腳本設計a腳本設計b
腳本設計c腳本設計d腳本設計e
腳本設計f腳本設計g
腳本設計h
專案成果檔案

 
a