love.run (Polski)

Główna funkcja LÖVE, zawierająca główną pętle aplikacji. LÖVE zapewnia sensowną domyślną implementację, także najczęściej nie ma potrzeby jej nadpisywać.

Funkcja

Dostępne od wersji LÖVE 11.0
Ten wariant nie jest dostępny we wcześniejszych wersjach.

Sygnatura

mainLoop = love.run ( )

Argumenty

Brak.

Wartość zwracana

function mainLoop
Funkcja, która obsługuje jedną klatkę, włączając w to obsługę zdażeń i renderowanie.

Funkcja

Usunięte w wersji LÖVE 11.0
Ten wariant nie jest dostępny w tej i późniejszych wersjach.

Sygnatura

love.run( )

Argumenty

Brak.

Wartość zwracana

Żadna

Przykłady

Domyślna implementacja funkcja w wersji 11.0

function love.run()
	if love.load then love.load(love.arg.parseGameArguments(arg), arg) end

	-- Nie chcemy, by czas jaki zajęło wywołanie funkcji love.load miał wpływ
        -- na  wartość zmiennej dt przekazanej przy pierwszym wywołaniu love.update
	if love.timer then love.timer.step() end

	local dt = 0

	-- Główna pętla
	return function()
		-- Przetwarzanie zdarzeń
		if love.event then
			love.event.pump()
			for name, a,b,c,d,e,f in love.event.poll() do
				if name == "quit" then
					if not love.quit or not love.quit() then
						return a or 0
					end
				end
				love.handlers[name](a,b,c,d,e,f)
			end
		end

		-- Uaktualnij wartość dt, która będzie przekazana do love.update
		if love.timer then dt = love.timer.step() end

		-- Wywołanie funkcji love.update oraz love.draw
		if love.update then love.update(dt) end -- jeżeli moduł love.timer został wyłączony, jako dt zostanie przekazane 0

		if love.graphics and love.graphics.isActive() then
			love.graphics.origin()
			love.graphics.clear(love.graphics.getBackgroundColor())

			if love.draw then love.draw() end

			love.graphics.present()
		end

		if love.timer then love.timer.sleep(0.001) end
	end
end

Domyślna implementacja funkcja w wersjach 0.10.0, 0.10.1, 0.10.2

function love.run()

	if love.math then
		love.math.setRandomSeed(os.time())
	end

	if love.load then love.load(arg) end

	-- Nie chcemy, by czas jaki zajęło wywołanie funkcji love.load miał wpływ
        -- na  wartość zmiennej dt przekazanej przy pierwszym wywołaniu love.update
	if love.timer then love.timer.step() end

	local dt = 0

	-- Główna pętla
	while true do
		-- Przetwarzanie zdarzeń
		if love.event then
			love.event.pump()
			for e,a,b,c,d in love.event.poll() do
				if e == "quit" then
					if not love.quit or not love.quit() then
						return a
					end
				end
				love.handlers[e](a,b,c,d)
			end
		end

		-- Uaktualnij wartość dt, która będzie przekazana do love.update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Wywołanie funkcji love.update oraz love.draw
		if love.update then love.update(dt) end -- jeżeli moduł love.timer został wyłączony, jako dt zostanie przekazane 0

		if love.window and love.graphics and love.window.isCreated() then
			love.graphics.clear(love.graphics.getBackgroundColor())
			love.graphics.origin()
			if love.draw then love.draw() end
			love.graphics.present()
		end

		if love.timer then love.timer.sleep(0.001) end
	end

end

Domyślna implementacja funkcja w wersjach 0.9.0, 0.9.1, 0.9.2

function love.run()

	if love.math then
		love.math.setRandomSeed(os.time())
	end

	if love.event then
		love.event.pump()
	end

	if love.load then love.load(arg) end

	-- Nie chcemy, by czas jaki zajęło wywołanie funkcji love.load miał wpływ
        -- na  wartość zmiennej dt przekazanej przy pierwszym wywołaniu love.update
	if love.timer then love.timer.step() end

	local dt = 0

	-- Główna pętla
	while true do
		-- Przetwarzanie zdarzeń
		if love.event then
			love.event.pump()
			for e,a,b,c,d in love.event.poll() do
				if e == "quit" then
					if not love.quit or not love.quit() then
						if love.audio then
							love.audio.stop()
						end
						return
					end
				end
				love.handlers[e](a,b,c,d)
			end
		end

		-- Uaktualnij wartość dt, która będzie przekazana do love.update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Wywołanie funkcji love.update oraz love.draw
		if love.update then love.update(dt) end -- jeżeli moduł love.timer został wyłączony, jako dt zostanie przekazane 0

		if love.window and love.graphics and love.window.isCreated() then
			love.graphics.clear()
			love.graphics.origin()
			if love.draw then love.draw() end
			love.graphics.present()
		end

		if love.timer then love.timer.sleep(0.001) end
	end

end

Domyślna implementacja funkcji w wersji 0.8.0

function love.run()

	math.randomseed(os.time())
	math.random() math.random()

	if love.load then love.load(arg) end

	local dt = 0

	-- Główna pętla
	while true do
		-- Przetwarzanie zdarzeń
		if love.event then
			love.event.pump()
			for e,a,b,c,d in love.event.poll() do
				if e == "quit" then
					if not love.quit or not love.quit() then
						if love.audio then
							love.audio.stop()
						end
						return
					end
				end
				love.handlers[e](a,b,c,d)
			end
		end

		-- Uaktualnij wartość dt, która będzie przekazana do love.update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Wywołanie funkcji love.update oraz love.draw
		if love.update then love.update(dt) end  -- jeżeli moduł love.timer został wyłączony, jako dt zostanie przekazane 0

		if love.graphics then
			love.graphics.clear()
			if love.draw then love.draw() end
		end

		if love.timer then love.timer.sleep(0.001) end
		if love.graphics then love.graphics.present() end
	end

end

omyślna implementacja funkcji w wersjach 0.7.0, 0.7.1 and 0.7.2

function love.run()

	if love.load then love.load(arg) end

	local dt = 0

	-- Główna pętla
	while true do
		-- Uaktualnij wartość dt, która będzie przekazana do love.update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Wywołanie funkcji love.update oraz love.draw
		if love.update then love.update(dt) end -- jeżeli moduł love.timer został wyłączony, jako dt zostanie przekazane 0
		if love.graphics then
			love.graphics.clear()
			if love.draw then love.draw() end
		end

		-- Przetwarzanie zdarzeń
		if love.event then
			for e,a,b,c in love.event.poll() do
				if e == "q" then
					if not love.quit or not love.quit() then
						if love.audio then
							love.audio.stop()
						end
						return
					end
				end
				love.handlers[e](a,b,c)
			end
		end

		if love.timer then love.timer.sleep(1) end
		if love.graphics then love.graphics.present() end
	end

end

Zobacz również


Inne języki