來自老外部落格,滑鼠拖動原文鏈結,發光效果原文鏈結。
滑鼠拖動
這個就是檢測滑鼠是否在繪圖區域按下,還要注意拖動時的座標要減去
滑鼠座標與繪圖區左頂點的差值。
function love.load線條輝光() rect =
}end
function
love.update(dt)
if rect.dragging.active then
rect.x = love.mouse.getx() -rect.dragging.diffx
rect.y = love.mouse.gety() -rect.dragging.diffy
endendfunction
love.draw()
love.graphics.rectangle(
"fill
", rect.x, rect.y, rect.width, rect.height)
endfunction
love.mousepressed(x, y, button)
if button == "l"
and x > rect.x and x < rect.x +rect.width
and y > rect.y and y < rect.y +rect.height
then
rect.dragging.active = true
rect.dragging.diffx = x -rect.x
rect.dragging.diffy = y -rect.y
endendfunction
love.mousereleased(x, y, button)
if button == "l"
then rect.dragging.active = false
endend
簡譯:最近我嘗試找到love2d來實現線條輝光(原文make lined shapes glow),或許有其它方式,下面是我想到的。
love.graphics.setcolor(r, g, b, 15上面的**多次繪圖,每次使用不同的線條寬度i。 一共繪製六次,每次的線條寬度為7, 6, 5, 4, 3, 1.)for i = 7, 2, -1
doif i == 2
then
i = 1
love.graphics.setcolor(r, g, b,
255)
endlove.graphics.setlinewidth(i)
--draw lined shape here
end
除了最後一次外,線條的alpha被設為15(最後一次是255).love預設alpha重疊,對線條來說顏色會越來越深,
就產生了輝光的效果。 最後一條線的alpha 是255,作為光源。
下面我把上面的想法寫成了函式glowshape,你可以自己測試想要的效果。
最後你需要檢測機器是否支援framebuffer,若支援就使用,這會提高很大的速度。
完整的**為:
function glowshape(r, g, b, type, ...)
love.graphics.setcolor(r, g, b, 15)
for i = 7, 2, -1
doif i == 2
then
i = 1
love.graphics.setcolor(r, g, b,
255)
endlove.graphics.setlinewidth(i)
iftype == "
line
"then
love.graphics[
type
](...)
else
love.graphics[
type]("
line
", ...)
endend
endfunction
love.draw()
glowshape(
255, 0, 0, "
rectangle
", 200, 100, 100, 100
) glowshape(
0, 255, 0, "
polygon
", 300, 300, 310, 330, 350, 290, 360, 310, 290, 350
)end
使用 Love2D 開發遊戲
love2d是一款讓開發者可以使用lua語言進行開發的2d遊戲框架,免費且開源。其官網上有詳細的介紹與手冊,但需要科學上網且為全英文。love2d國外的開發者社群比較活躍,但國內的資料就比較少了,可能會有語言障礙。但lua語言本身的簡潔性加上框架的輕量級,英文的社群和手冊其實也很好理解。pico 8...
love2d教程28 血條
感謝朱大仙提供的 這才有了這篇部落格。血條 至於體力 法力都是類似的 是遊戲裡常用的gui控制項,它主要實現兩個功能 增加 減少。效果如圖 沒有錄製gif 血條的繪製可以使用love裡的一些繪圖函式,還可以用填充。這裡採用bloodlineb.png填充,同時這個也是乙個quad的序列圖,用它來組成...
love2d教程28 血條
感謝朱大仙提供的 這才有了這篇部落格。血條 至於體力 法力都是類似的 是遊戲裡常用的gui控制項,它主要實現兩個功能 增加 減少。效果如圖 沒有錄製gif 血條的繪製可以使用love裡的一些繪圖函式,還可以用填充。這裡採用bloodlineb.png填充,同時這個也是乙個quad的序列圖,用它來組成...