require "import" -- Debugging / Logging: debug = calc.debug calc.isDebug = true function love.load() -- Declaration: love.window.setTitle(info.name.." - v"..info.version) width, height = love.graphics.getDimensions() cam = Camera() zoomlevel = 0.5 -- Loading: ships = {} --Potentially add other starships in the future? planet = {} loadPlanets() local spawnPlanet = planet[1] player = Player(spawnPlanet.x, spawnPlanet.y-spawnPlanet.r-1) gui = Gui(1) end -- Planets: function loadPlanets() debug("Planets in planet table: "..#planetdata) for i=1, #planetdata do local p = planetdata[i] debug(p.name.." is loading") table.insert(planet, i, Planet( -- Planet Data Assignment: p.x, p.y, p.r, p.m, p.name, p.colour, p.parent ) ) debug(p.name.." is loaded") end debug("Planets loaded: "..#planet) end function updatePlanets() planet[1]:update() end function drawPlanets() for i=1, #planet do planet[i]:draw() --debug("Drawing planet " .. i) end end -- Camera function cameraControls() local zooming = 0.01 function love.wheelmoved(x, y) if y > 0 then -- Zoom in: zoomlevel = zoomlevel + zooming elseif y < 0 then -- Zoom out: zoomlevel = zoomlevel - zooming end end -- Reset Zoom: if love.mouse.isDown(3) then zoomlevel = 1 end -- Zoom Limit: local max = 4 local min = 0.001 if zoomlevel < min then zoomlevel = min end if zoomlevel > max then zoomlevel = max end --debug(zoomlevel) cam:zoomTo(zoomlevel) end -- MAIN function love.update(dt) -- Game Objects: updatePlanets() player:update(dt) -- Gui: gui:update(dt) -- Camera: cam:lookAt(player.x, player.y) cameraControls() --debug(player.x .. " " .. player.y) end function love.draw() cam:attach() -- Game Objects: drawPlanets() player:draw() -- Camera Zoom Player Location Indicator: OVERWORK SOON PLS KAY; IT UGLY if zoomlevel < 0.3 then love.graphics.setColor(1, 1, 1, 0.2) love.graphics.circle("fill", player.x, player.y, (1/zoomlevel)*10) end cam:detach() -- Gui: gui:draw() end