💾 Archived View for gem.ortie.org › docs › 005_love2d.gmi captured on 2024-07-09 at 00:39:50. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-11-14)

-=-=-=-=-=-=-

💻 Löve 2D

Löve est un cadriciel puissant pour programmer des jeux en Lua.

Astuces

Il est possible d'y interfacer Nuklear, mais cela ne rendra pas le sytème très portable. Malgré tout, pour une application locale cela peut aller.

LoveNuklear

Pour une interface plus simple, SUIT sera adapté, le système est un peu vieux mais fonctionne toujours dans la dernière version de Löve 11.4

Fork de Suit, en un seul fichier.

Il est ensuite possible de créer une version pour le WEB avec l'outil LoveWebBuilder

LoveWebBuilder

Attention, Löve utilisant LuaJIT, qui prend la syntaxe de Lua 5.1, certains ajouts dans Lua 5.3 et 5.4 ne seront pas compatibles.

Liens

Love2d

Exemples

Exemple de création d'un programme "compteur", avec l'interface en Suit.

Fonctionne également sous Android.

sudo apt install love
git clone https://github.com/HTV04/suit-compact.git
cd suit-compact
echo "
-- suit up
local suit = require 'suit'


myCount = 0
myScore = 0

 
function love.load()
	
	love.graphics.setBackgroundColor(0.8,0.7,0.6,1)
	suit.theme.color.normal.fg = {0.25,0.28,0.2}
	suit.theme.color.normal.bg = {0.9,0.85,0.75}
	suit.theme.color.hovered = {bg = {0.975,0.96,0.70}, fg = {0.2,0.1,0.2}}
	suit.theme.color.active = {bg = {0.63,0.57,0.49}, fg = {0.9,0.9,0.9}}
end


-- all the UI is defined in love.update or functions that are called from here
function love.update(dt)
	-- put the layout origin at position (100,300)
	-- the layout will grow down and to the right from this point
	suit.layout:reset(100,300)
	local font = love.graphics.newFont(22)
	love.graphics.setFont(font)

	-- put a button of size 40x40 px in the cell below
	-- if the button is pressed, quit the game
	if suit.Button('x', 285,20,40,40).hit then
		love.event.quit()
	end
	
	-- adding more buttons to the sample
	
	if suit.Button('Count', 15, 280, 100, 40).hit then
		myScore = myScore + 1
		myCount = myCount + 1
    end
	
	if suit.Button('Miss', 120, 280, 100, 40).hit then
		myCount = myCount + 1
    end
	
	if suit.Button('Reset', 225, 280, 100, 40).hit then
		myScore = 0
		myCount = 0

    end
	
end

function love.draw()
	-- draw the SUIT gui
	suit.draw()
	-- draw the counter
	 local font = love.graphics.newFont(40)
     love.graphics.setFont(font)
	 love.graphics.print('Counter', 10, 10)
	 love.graphics.print(myScore, 110, 150)
	 love.graphics.print(' / ', 170, 150)
	 love.graphics.print(myCount, 215, 150)
end


function love.keypressed(key)
	-- forward keypresses to SUIT
	suit.keypressed(key)
end
" > main.lua

echo "function love.conf(t)
		t.window.width = 400
		t.window.height = 800
		t.window.title = 'Counter demo'
		--t.window.icon = 'love_icon.png'
end
" > conf.lua
love ./

#informatique

index.gmi