Code: Select all
-- size of the screen
Width, Height = love.graphics.getDimensions( )
-- table with the middle
Sun = {x=Width/2, y=Height/2}
-- list of planets
Planets = {}
function addPlanet (middle, radius, phi, omega)
local t = love.timer.getTime()
local planet =
{
middle = middle,
omega=omega,
radius=radius,
phi=phi,
x = middle.x + radius*math.cos (t*omega + phi),
y = middle.y + radius*math.sin (t*omega + phi),
}
table.insert (Planets, planet)
return planet
end
Mercury = addPlanet (Sun, 50, 2*math.pi*math.random(), 100/50)
Venus = addPlanet (Sun, 100, 2*math.pi*math.random(), 100/100)
Earth = addPlanet (Sun, 200, 2*math.pi*math.random(), 100/200)
Moon = addPlanet (Earth, 35, 2*math.pi*math.random(), 50/35)
function love.update(dt)
local t = love.timer.getTime()
for i, planet in ipairs (Planets) do
planet.x = planet.middle.x + planet.radius*math.cos (t*planet.omega + planet.phi)
planet.y = planet.middle.y + planet.radius*math.sin (t*planet.omega + planet.phi)
end
end
function love.draw()
love.graphics.setColor(1,1,0)
love.graphics.circle ('fill', Sun.x, Sun.y, 5)
love.graphics.setColor(1,1,1)
for i, planet in ipairs (Planets) do
love.graphics.circle ('line', planet.middle.x, planet.middle.y, planet.radius)
love.graphics.circle ('fill', planet.x, planet.y, 5)
end
end