animate_viewport_to = function(v) local global_viewport, globalw, globalh = initialize_global_viewport() local canvas = snapshot_canvas(global_viewport, globalw, globalh) v = v or global_viewport local initial = copy_viewport(Viewport) local final = v local step, frame_time = 0, 0 while true do love.event.pump() for name, a,b,c,d,e,f in love.event.poll() do if name == "quit" then os.exit(0) end -- ignore other events end -- update dt = love.timer.step() frame_time = frame_time + dt if frame_time > 0.01 then frame_time = frame_time - 0.01 step = step + 1 if step > Num_animation_frames then break end interpolate_viewport(initial, final, step) --? print('animation frame: Viewport is now', Viewport.x, Viewport.y, Viewport.zoom) B() end -- draw love.graphics.origin() love.graphics.clear(love.graphics.getBackgroundColor()) local q = love.graphics.newQuad( (Viewport.x-global_viewport.x)*Viewport.zoom, (Viewport.y-global_viewport.y)*Viewport.zoom, App.screen.width, App.screen.height, globalw*Viewport.zoom, globalh*Viewport.zoom) App.color{r=1,g=1,b=1} love.graphics.draw(canvas, q, 0,0) love.graphics.present() love.timer.sleep(0.001) end A() end