I've made a camera_system some time ago. Hope it helps.
-- title: camera_system -- author: iZmae -- desc: A simple camera system you can use -- site: https://izmae.itch.io/ -- license: MIT License (change this to your license of choice) -- version: 0.2 -- script: lua w=240 h=136 cam={ x=0,y=0,sx=0,sy=0, wlim=30, hlim=17, wmax=210, hmax=119, vel=0.25 } function camera(x, y, mode, velx, vely) if mode=="follow" then if x>cam.wmax and cam.sx>-cam.wmax*8 then cam.sx=cam.sx-velx elseif x<cam.wlim and cam.sx<0 then cam.sx=cam.sx+velx end if y>cam.hmax and cam.sy>-cam.hmax*8 then cam.sy=cam.sy-vely elseif y<cam.hlim and cam.sy<0 then cam.sy=cam.sy+vely end end end function TIC() map(cam.x, cam.y, w, h, cam.sx, cam.sy, -1, 2) camera(sprx+cam.sx,spry+cam.sy, "follow",1,2) if btn(3) then sprx=sprx+1 end if btn(2) then sprx=sprx-1 end if btn(1) then spry=spry+1 end if btn(0) then spry=spry-1 end spr(256,sprx+cam.sx,spry+cam.sy,-1,1,0,0,1,1) print("x: "..sprx+cam.sx,123,90) print("y: "..spry+cam.sy,123,80) end
EDIT: changed it, it's smoother now