開源跨平台2D遊戲引擎Love2D介紹

2021-09-01 18:46:22 字數 2848 閱讀 9065

。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...