Difference between revisions of "love.run (Українська)"

m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Основна функція, яка містить головний цикл. Якщо упущена, то використовується стандартна реалізація цієї функції.
 
Основна функція, яка містить головний цикл. Якщо упущена, то використовується стандартна реалізація цієї функції.
 +
== Function ==
 +
{{newin (Українська)|[[11.0]]|110|type=variant}}
 +
=== Synopsis ===
 +
<source lang="lua">
 +
mainLoop = love.run ( )
 +
</source>
 +
=== Arguments ===
 +
None.
 +
=== Returns ===
 +
{{param (Українська)|function|mainLoop|Функція, яка виконує всі дії, призначені для одного кадру, в тому числі опрацювання подій та малювання.}}
 +
 
== Функція ==
 
== Функція ==
 +
{{oldin (Українська)|[[11.0]]|110|type=variant}}
 
=== Вигляд ===
 
=== Вигляд ===
 
<source lang="lua">
 
<source lang="lua">
Line 6: Line 18:
 
</source>
 
</source>
 
=== Аргументи ===
 
=== Аргументи ===
Нетмає.
+
Немає.
 +
 
 
=== Возвращает ===
 
=== Возвращает ===
 
Нічого.
 
Нічого.
 
== Приклади ==
 
== Приклади ==
 +
=== Стандартна функція для версії [[11.0]], використовується, якщо ви не написали власну. ===
 +
<source lang="lua">
 +
function love.run()
 +
if love.load then love.load(love.arg.parseGameArguments(arg), arg) end
 +
 +
-- Не треба, щоб dt першого кадру включав час роботи love.load.
 +
if love.timer then love.timer.step() end
 +
 +
local dt = 0
 +
 +
-- Час основного циклу.
 +
return function()
 +
-- Опрацювання подій.
 +
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
 +
 +
-- Оновити час dt, бо він передаватиметься функції update
 +
if love.timer then dt = love.timer.step() end
 +
 +
-- Викликати update (оновлення) та draw (малювання)
 +
if love.update then love.update(dt) end -- якщо love.timer виключений, буде передано 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
 +
</source>
 +
 +
=== Стандартна функція для версії [[0.10.0]], [[0.10.1]], and [[0.10.2]], використовується, якщо ви не написали власну. ===
 +
<source lang="lua">
 +
function love.run()
 +
 +
if love.math then
 +
love.math.setRandomSeed(os.time())
 +
end
 +
 +
if love.load then love.load(arg) end
 +
 +
-- Не треба, щоб dt першого кадру включав час роботи love.load.
 +
if love.timer then love.timer.step() end
 +
 +
local dt = 0
 +
 +
-- Час основного циклу.
 +
while true do
 +
-- Опрацювання подій.
 +
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
 +
end
 +
end
 +
love.handlers[name](a,b,c,d,e,f)
 +
end
 +
end
 +
 +
-- Оновити час dt, бо він передаватиметься функції update
 +
if love.timer then
 +
love.timer.step()
 +
dt = love.timer.getDelta()
 +
end
 +
 +
-- Викликати update (оновлення) та draw (малювання)
 +
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
 +
 +
if love.graphics and love.graphics.isActive() 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
 +
</source>
 
=== Стандартна функція для версії [[0.9.0]], [[0.9.1]], і [[0.9.2]], використовується, якщо ви не написали власну. ===
 
=== Стандартна функція для версії [[0.9.0]], [[0.9.1]], і [[0.9.2]], використовується, якщо ви не написали власну. ===
 
<source lang="lua">
 
<source lang="lua">
Line 25: Line 134:
 
if love.load then love.load(arg) end
 
if love.load then love.load(arg) end
  
-- We don't want the first frame's dt to include time taken by love.load.
+
-- Не треба, щоб dt першого кадру включав час роботи love.load.
 
if love.timer then love.timer.step() end
 
if love.timer then love.timer.step() end
  
 
local dt = 0
 
local dt = 0
  
-- Main loop time.
+
-- Час основного циклу.
 
while true do
 
while true do
-- Process events.
+
-- Опрацювання подій.
 
if love.event then
 
if love.event then
 
love.event.pump()
 
love.event.pump()
Line 48: Line 157:
 
end
 
end
  
-- Update dt, as we'll be passing it to update
+
-- Оновити час dt, бо він передаватиметься функції update
 
if love.timer then
 
if love.timer then
 
love.timer.step()
 
love.timer.step()
Line 54: Line 163:
 
end
 
end
  
-- Call update and draw
+
-- Викликати update (оновлення) та draw (малювання)
 
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
 
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
  
Line 81: Line 190:
 
local dt = 0
 
local dt = 0
  
-- Main loop time.
+
-- Час основного циклу.
 
while true do
 
while true do
-- Process events.
+
-- Опрацювання подій.
 
if love.event then
 
if love.event then
 
love.event.pump()
 
love.event.pump()
Line 99: Line 208:
 
end
 
end
  
-- Update dt, as we'll be passing it to update
+
-- Оновити час dt, бо він передаватиметься функції update
 
if love.timer then
 
if love.timer then
 
love.timer.step()
 
love.timer.step()
Line 105: Line 214:
 
end
 
end
  
-- Call update and draw
+
-- Викликати update (оновлення) та draw (малювання)
 
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
 
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
 
if love.graphics then
 
if love.graphics then
Line 126: Line 235:
 
local dt = 0
 
local dt = 0
  
-- Main loop time.
+
-- Час основного циклу.
 
while true do
 
while true do
 
if love.timer then
 
if love.timer then
Line 138: Line 247:
 
end
 
end
  
-- Process events.
+
-- Опрацювання подій.
 
if love.event then
 
if love.event then
 
for e,a,b,c in love.event.poll() do
 
for e,a,b,c in love.event.poll() do
Line 160: Line 269:
 
</source>
 
</source>
 
== Дивіться також ==
 
== Дивіться також ==
* [[parent::love_(Українська)]]
+
* [[parent::love (Українська)]]
 
[[Category:Callbacks]]
 
[[Category:Callbacks]]
 
{{#set:Link for lists=[[love.run (Українська)|love.run]]}}
 
{{#set:Link for lists=[[love.run (Українська)|love.run]]}}

Latest revision as of 13:03, 31 January 2020

Основна функція, яка містить головний цикл. Якщо упущена, то використовується стандартна реалізація цієї функції.

Function

Доступне починаючи з LÖVE 11.0
Цей варіант недоступний в попередніх версіях.

Synopsis

mainLoop = love.run ( )

Arguments

None.

Returns

function mainLoop
Функція, яка виконує всі дії, призначені для одного кадру, в тому числі опрацювання подій та малювання.

Функція

Видалене в LÖVE 11.0
Цей варіант недоступний в LÖVE 11.0 і наступних версіях..

Вигляд

love.run( )

Аргументи

Немає.

Возвращает

Нічого.

Приклади

Стандартна функція для версії 11.0, використовується, якщо ви не написали власну.

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

	-- Не треба, щоб dt першого кадру включав час роботи love.load.
	if love.timer then love.timer.step() end

	local dt = 0

	-- Час основного циклу.
	return function()
		-- Опрацювання подій.
		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

		-- Оновити час dt, бо він передаватиметься функції update
		if love.timer then dt = love.timer.step() end

		-- Викликати update (оновлення) та draw (малювання)
		if love.update then love.update(dt) end -- якщо love.timer виключений, буде передано 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

Стандартна функція для версії 0.10.0, 0.10.1, and 0.10.2, використовується, якщо ви не написали власну.

function love.run()

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

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

	-- Не треба, щоб dt першого кадру включав час роботи love.load.
	if love.timer then love.timer.step() end

	local dt = 0

	-- Час основного циклу.
	while true do
		-- Опрацювання подій.
		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
					end
				end
				love.handlers[name](a,b,c,d,e,f)
			end
		end

		-- Оновити час dt, бо він передаватиметься функції update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Викликати update (оновлення) та draw (малювання)
		if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled

		if love.graphics and love.graphics.isActive() 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

Стандартна функція для версії 0.9.0, 0.9.1, і 0.9.2, використовується, якщо ви не написали власну.

function love.run()

	if love.math then
		love.math.setRandomSeed(os.time())
		for i=1,3 do love.math.random() end
	end

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

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

	-- Не треба, щоб dt першого кадру включав час роботи love.load.
	if love.timer then love.timer.step() end

	local dt = 0

	-- Час основного циклу.
	while true do
		-- Опрацювання подій.
		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

		-- Оновити час dt, бо він передаватиметься функції update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Викликати update (оновлення) та draw (малювання)
		if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled

		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

Стандартна функція для версії 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

	-- Час основного циклу.
	while true do
		-- Опрацювання подій.
		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

		-- Оновити час dt, бо він передаватиметься функції update
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end

		-- Викликати update (оновлення) та draw (малювання)
		if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
		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

Стандартна функція для версії 0.7.0, 0.7.1 і 0.7.2, використовується, якщо ви не написали власну.

function love.run()

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

	local dt = 0

	-- Час основного циклу.
	while true do
		if love.timer then
			love.timer.step()
			dt = love.timer.getDelta()
		end
		if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
		if love.graphics then
			love.graphics.clear()
			if love.draw then love.draw() end
		end

		-- Опрацювання подій.
		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

Дивіться також



Інші мови