。love2d是乙個開源的, 跨平台的2d遊戲引擎。使用純lua指令碼來進行遊戲開發。目前支援的平台有windows,mac os,linux。另外在社群裡,還有love2d-android版本,而且也有進軍ios的計畫。
這個遊戲引擎在國內聽說或者是使用的人可能不是很多,但是在國外還是有很大一部分的使用人群的。
官方**為:
目前的最新版本為 0.8.0。
我們可以看到如下幾個檔案。
雙擊love.exe。
額,這個。可以當成是預設畫面吧。
有的人看到這裡,就會覺得摸不著頭腦。不知道該如何進行開發或者執行。
其實很簡單,我們新建乙個資料夾:firstgame。然後在資料夾裡新建乙個lua指令碼:main.lua。 注意:這裡一定要是main.lua。因為love2d引擎預設開始執行的指令碼就是main.lua。
我們來寫乙個hello world。
function love.draw()
love.graphics.print("hello world", 300, 300)
end
這就是乙個簡單的helloworld指令碼。love.graphics.print是繪製文字的函式。我們在(300,300)座標繪製了乙個"hello world"字串。
然後我們把firstgame資料夾,拖到love.exe上。就可以看到執行後的效果了。
是不是很簡單?
當然,用指令碼語言的優點就是不用重複編譯,可以節省大量的時間。不過也有缺點,由於love2d沒有官方的ide,所以我們不可能有**提示的。(- - !)
下面我們來看看love2d的sdk的結構。
我們可以看到這些都是love2d裡lua的模組module。模組的功能都可以從名字看到,有音訊,事件,檔案系統,字型,圖形繪製,操縱桿,鍵盤滑鼠事件,物理部分等。還有封裝的執行緒等功能。
大家可以看到,雖然是用的lua語言,但是模組的功能還是很強大的。對於開發2d遊戲來說,是綽綽有餘了。
love2d裡有一些預設的函式來執行。
love.draw 每一幀繪製都會執行。
love.focus 當視窗獲取焦點或者失去焦點時執行。
love.joystickpressed 當操作杆按下按鍵時執行。
love.joystickreleased 當操作杆鬆開按鍵時執行。
love.keypressed / love.keyreleased 當鍵盤按下按鍵和鬆開按鍵時執行。
love.mousepressed / love.mousereleased 當滑鼠按下按鍵和鬆開按鍵時執行。
love.load 這個函式在每次開始遊戲的時候執行一次。
love.quit 在遊戲關閉時執行。
love.run 最主要的函式,包含了遊戲的主迴圈。
love.update 每一幀執行,用來更新遊戲狀態。
下面我們來看看乙個簡單的例子,就是在螢幕繪製乙個。
function love.load()
person= love.graphics.newimage("preson.png")
x = 50
y = 50
endfunction love.draw()
love.graphics.draw(person, x, y)
end
上面就是對love2d裡lua模組的乙個簡單介紹。
下面我們來看看,如何把love2d的lua指令碼打包為可執行程式。
這是乙個資源打包工具,可以把你寫的lua指令碼和資源打包為.love檔案。
然後把剛剛的firstgame的資料夾放到這個的同級目錄。並新建乙個build.bat檔案。
寫入內容lovedist firstgame firstgame。
可以看到如上的畫面,然後再目錄裡,我們發現多了乙個firstgame.love檔案。
然後把firstgame.love檔案放到love.exe檔案同目錄。
新建乙個build.bat檔案,並寫入內容:copy /b love.exe+firstgame.love firstgame.exe。
雙擊執行。
我們可以看到,多了乙個firstgame.exe。
雙擊執行,就是我們剛剛的hello world程式了。
最終我們的程式目錄應該包含以下檔案:
sdl.dll ,openal32.dll ,devil.dll ,firstgame.exe ,license.txt。
注意,發布的任何遊戲要附帶license.txt。因為love2d是lgpl開源協議的,並且還用到了其他的lgpl開源協議的庫。
這樣我們就可以用love2d開發並發布自己的遊戲了。
2D開源遊戲引擎調研報告(二)
二 panda3d 0.基本介紹 panda3d是由迪士尼參與開發的開源3d遊戲引擎 只有函式庫,通過在python c 檔案中呼叫函式庫進行開發 官網 教程資源 安裝引擎時會附帶28個demo,展示了引擎的使用方式和特點,並附有非常詳細的注釋 分步驟介紹了乙個小遊戲的製作過程和所需 官網上的教程,...
XNA 的 3D 和 2D 遊戲引擎(商業與開源)
找到了不少,在這裡分享一下。說不定以後我自己也要用到!商業3d引擎 torquex 我兩年前用的時候,還只是乙個2d引擎,目前社群版已經有for xna 4.0 的了 visual3d 這個沒有用過,不過看介紹還是不錯 開源3d引擎 oxgameengine fox xna 社群裡推薦的遊戲引擎,似...
2D遊戲開發(2)
每次給遊戲新增新功能時,通常也會引入一些新設定。為了讓所有的設定進行統一管理,我們可以配置乙個名為 setting的模組,這個模組中包含乙個setting的類,用來儲存所有的設定。usr bin env python3.5 filename setting 儲存所有的設定 class setting...