Difference between revisions of "love.graphics.line"
(→See Also) |
|||
Line 76: | Line 76: | ||
end | end | ||
end | end | ||
+ | </source> | ||
+ | |||
+ | |||
+ | === Draw temp line with mouse === | ||
+ | |||
+ | <source lang="lua"> | ||
+ | tempLine = {} | ||
+ | |||
+ | |||
+ | local function drawLine (line) | ||
+ | |||
+ | end | ||
+ | |||
+ | function love.draw() | ||
+ | -- check if line has 4 coordinates: | ||
+ | if #tempLine > 3 then | ||
+ | love.graphics.line (tempLine) | ||
+ | end | ||
+ | end | ||
+ | |||
+ | function love.mousepressed(x, y) | ||
+ | -- set first point: | ||
+ | tempLine = {x, y} | ||
+ | end | ||
+ | |||
+ | function love.mousemoved (x, y) | ||
+ | -- update second point: | ||
+ | tempLine[3] = x | ||
+ | tempLine[4] = y | ||
+ | end | ||
+ | |||
+ | function love.mousereleased ( x, y) | ||
+ | -- get your temp line coordinates as: | ||
+ | -- local x1, y1 = tempLine[1], tempLine[2] | ||
+ | -- local x2, y2 = tempLine[3], tempLine[4] | ||
+ | |||
+ | -- clean temp line: | ||
+ | tempLine = {} | ||
+ | end | ||
+ | |||
</source> | </source> | ||
Latest revision as of 08:19, 21 July 2023
Draws lines between points.
Function
Synopsis
love.graphics.line( x1, y1, x2, y2, ... )
Arguments
number x1
- The position of first point on the x-axis.
number y1
- The position of first point on the y-axis.
number x2
- The position of second point on the x-axis.
number y2
- The position of second point on the y-axis.
number ...
- You can continue passing point positions to draw a polyline.
Returns
Nothing.
Function
Synopsis
love.graphics.line( points )
Arguments
table points
- A table of point positions, as described above.
Returns
Nothing.
Examples
Draw the outline of a simple trapezoid
function love.draw()
love.graphics.line(200,50, 400,50, 500,300, 100,300, 200,50) -- last pair is a repeat to complete the trapezoid
end
Draw a line from the center of the screen to the mouse pointer
function love.draw()
local mx, my = love.mouse.getPosition()
local windowWidth, windowHeight = love.graphics.getDimensions()
love.graphics.line(windowWidth/2, windowHeight/2, mx, my)
end
Draw a zigzag line using a table
local zigzagLine = {100,100, 200,200, 300,100, 400,200}
function love.draw()
love.graphics.line(zigzagLine)
end
Generate and draw a grid
local cellSize = 30 -- Width and height of cells.
local gridLines = {}
local windowWidth, windowHeight = love.graphics.getDimensions()
-- Vertical lines.
for x = cellSize, windowWidth, cellSize do
local line = {x, 0, x, windowHeight}
table.insert(gridLines, line)
end
-- Horizontal lines.
for y = cellSize, windowHeight, cellSize do
local line = {0, y, windowWidth, y}
table.insert(gridLines, line)
end
function love.draw()
love.graphics.setLineWidth(2)
for i, line in ipairs(gridLines) do
love.graphics.line(line)
end
end
Draw temp line with mouse
tempLine = {}
local function drawLine (line)
end
function love.draw()
-- check if line has 4 coordinates:
if #tempLine > 3 then
love.graphics.line (tempLine)
end
end
function love.mousepressed(x, y)
-- set first point:
tempLine = {x, y}
end
function love.mousemoved (x, y)
-- update second point:
tempLine[3] = x
tempLine[4] = y
end
function love.mousereleased ( x, y)
-- get your temp line coordinates as:
-- local x1, y1 = tempLine[1], tempLine[2]
-- local x2, y2 = tempLine[3], tempLine[4]
-- clean temp line:
tempLine = {}
end
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info