local node = Node:extend('nodes.screen1', {})

function node:render()
  love.graphics.setColor( 0, 0, 0 )
  love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight())

  for x = 0, love.graphics.getWidth() / 50, 1 do
    for y = 0, love.graphics.getHeight() / 50, 1 do
      local r = math.sin(x +  love.timer.getTime() * 2) + math.cos(y + love.timer.getTime() * math.sin(x));
      love.graphics.setColor(1.0, 1.0, 1.0, (r + 2) * 1.0)
      love.graphics.circle("line", x * 50, y * 50, r * 10)
    end
  end
end

return node
