Lua: Writing Files
From Mario Fan Games Galaxy Wiki
| Lua |
|---|
|
| Basics |
| Intermediate |
| Advanced |
|
| XLua |
| Add to this template |
Writing to a file in Lua is a simple process. For this tutorial, we will write a script that generates a few polygons and exports them as an SVG file.
-- a function to generate regular polygons
function polygon(x, y, sides, radius)
local points = ""
local ang_offset = 360 / sides
for p = 1, sides do
local point_angle = math.rad(p * ang_offset)
local point_x = math.cos(point_angle) * radius + x
local point_y = math.sin(point_angle) * radius + y
points = points .. point_x .. "," .. point_y .. " "
end
return '<polygon points="' .. points .. '" /> \n'
end
-- use a variable to hold the file handle, and open a new file
svg = io.open("./polygon_lua.svg", "wb")
io.output(svg)
-- write the start of the svg info
svg:write('<?xml version="1.0" standalone="no"?>', '\n')
svg:write('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">', '\n')
svg:write('<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg" version="1.1">', '\n')
-- draw a few polygons
svg:write(polygon(200, 120, 12, 30))
svg:write(polygon(300, 300, 22, 64))
svg:write(polygon(128, 256, 5, 50))
-- write the end of the svg info
svg:write('</svg>', '\n')
-- we're done with the file, so close it
svg:flush()
svg:close()
