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