Difference between revisions of "Tutorial:Callback Functions (한국어)"
m (Update for new syntax) |
|||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
LÖVE의 [[:Category:Callbacks|콜백]] 함수들은 [[love.run]]에 의해 여러가지 작업을 수행하기 위해 호출되며 모두 꼭 있어야 하는 것은 아닙니다. 그러나, 모든 기능이 갖춰진 게임은 이것들을 거의 모두 사용하니 이것들이 무엇인지 알아두는 것이 좋을 겁니다. | LÖVE의 [[:Category:Callbacks|콜백]] 함수들은 [[love.run]]에 의해 여러가지 작업을 수행하기 위해 호출되며 모두 꼭 있어야 하는 것은 아닙니다. 그러나, 모든 기능이 갖춰진 게임은 이것들을 거의 모두 사용하니 이것들이 무엇인지 알아두는 것이 좋을 겁니다. | ||
− | + | 프로그래밍이 처음이거나 이 단어에 익숙하지 않은 분들을 위해 설명하자면, 콜백은 무대 뒤쪽에서 일합니다. [[love.graphics.draw]]나 math.floor과 같은 일반적인 함수들은 Love나 Lua에서 호출할 수 있습니다. 반면에, 콜백은 당신의 코드가 잘 짜여지게 합니다. 예를 들어, love.load가 게임이 처음 시작할 때(그 어떤 콜백보다도 먼저) 실행되기 때문에, 여기에는 게임을 불러오고 여러가지를 준비하는 코드를 놓는 것이 좋습니다. | |
==[[love.load]]== | ==[[love.load]]== | ||
Line 13: | Line 13: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 게임이 시작될 때 가장 먼저 실행됩니다. 그리고 이것은 보통 리소스를 불러오고, 변수를 초기화하고 설정하는데 사용됩니다. 이것들은 다른 곳에서도 할 수 있지만, 이것을 단 한번만 한다는 것은 시스템 자원을 많이 아낄 수 있다는 것을 뜻합니다. | |
==[[love.update]]== | ==[[love.update]]== | ||
Line 23: | Line 23: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 끊임없이 실행되고, 아마도 대부분의 계산을 이곳에서 함수가 처리하게 될 것입니다. dt는 "[[love.timer.getDelta|델타 시간]]"을 의미하고 전에 이 함수가 실행된지 얼마나 지났는지를 의미합니다. (대부분 이것은 0.025714와 같이 아주 작은 값입니다.) | |
==[[love.draw]]== | ==[[love.draw]]== | ||
Line 32: | Line 32: | ||
end | end | ||
</source> | </source> | ||
− | <code>[[love.draw]]</code> | + | |
+ | <code>[[love.draw]]</code>는 뭔가 그리는(이미 그려져 있지 않다면) 곳입니다. 당신이 <code>[[love.graphics.draw]]</code>의 코드를 이 함수 밖에서 실행한다면 아무일도 일어나지 않을 겁니다. 이 함수는 계속 실행되므로 당신이 폰트/색/모드/기타 등등을 이곳의 함수 내에서 바꾼다면 함수가 다시 시작할 때 영향을 미칠 것입니다. 예를 들면: | ||
<source lang="lua"> | <source lang="lua"> | ||
function love.load() | function love.load() | ||
Line 46: | Line 47: | ||
==[[love.mousepressed]]== | ==[[love.mousepressed]]== | ||
+ | {{newin|[[0.10.0]]|100|type=variant}} | ||
<source lang="lua"> | <source lang="lua"> | ||
− | function love.mousepressed(x, y, button) | + | function love.mousepressed(x, y, button, istouch) |
− | if button == | + | if button == 1 then |
imgx = x -- move image to where mouse clicked | imgx = x -- move image to where mouse clicked | ||
imgy = y | imgy = y | ||
Line 54: | Line 56: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 마우스 버튼이 눌렸을 때 실행되며 어떤 버튼이 눌렸는지, 좌표는 어디인지를 반환합니다. 마우스 버튼 값에 대해서는 [[MouseConstant|상수]]가 반환됩니다. 이 함수는 <code>[[love.mousereleased]]</code>와 비슷합니다. | |
==[[love.mousereleased]]== | ==[[love.mousereleased]]== | ||
+ | {{newin|[[0.10.0]]|100|type=variant}} | ||
<source lang="lua"> | <source lang="lua"> | ||
− | function love.mousereleased(x, y, button) | + | function love.mousereleased(x, y, button, istouch) |
− | if button == | + | if button == 1 then |
fireSlingshot(x,y) -- this totally awesome custom function is defined elsewhere | fireSlingshot(x,y) -- this totally awesome custom function is defined elsewhere | ||
end | end | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 마우스 버튼이 떼어졌을 때 실행되며 어떤 버튼이 떼어졌는지와 떼어진 부분의 좌표를 반환합니다. 이 함수는 <code>[[love.mousepressed]]</code>와는 별개의 함수이기 때문에 같이 사용할 수도, 별개로 사용할 수도 있습니다. | |
− | |||
==[[love.keypressed]]== | ==[[love.keypressed]]== | ||
Line 77: | Line 79: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 키보드가 눌렸을 때 실행되며, 어떤 키가 눌려졌는지를 반환합니다. 키는 [[KeyConstant|키 상수]]에서 확인할 수 있습니다. 이 함수는 <code>[[love.keyreleased]]</code>와 비슷합니다. | |
==[[love.keyreleased]]== | ==[[love.keyreleased]]== | ||
Line 89: | Line 91: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 키보드가 눌렸다 떼어졌을 때 실행되며, 어떤 키가 눌렸다 떨어졌는지를 반환합니다. 이 함수는 <code>[[love.keypressed]]</code>와는 별개의 함수이기 때문에 같이 사용할 수도, 별개로 사용할 수도 있습니다. | |
==[[love.focus]]== | ==[[love.focus]]== | ||
Line 101: | Line 103: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 사용자가 LOVE 창을 클릭하거나 다른 창을 클릭하였을 때 실행됩니다. | |
+ | 예를 들어 사용자가 창 모드 게임을 하고 있을 때 웹 브라우져를 클릭하면, 게임이 그것을 알아차리고 자동으로 일시 정지하게 만들 수 있습니다. | ||
<source lang="lua"> | <source lang="lua"> | ||
function love.focus(f) gameIsPaused = not f end | function love.focus(f) gameIsPaused = not f end | ||
Line 118: | Line 121: | ||
end | end | ||
</source> | </source> | ||
− | + | 이 함수는 사용자가 창 닫기 버튼(보통 X 버튼)을 클릭했을 때 실행됩니다. 만약 사용자가 게임을 그만 하려고 창을 닫으면, 창이 닫히기 전에 게임이 상태를 저장할 수 있습니다. | |
− | + | 콜백 함수들과 기본적인 사용법이었습니다. | |
− | [[Category:Tutorials]] | + | [[Category:Tutorials (한국어)]] |
{{#set:LOVE Version=0.6.0}} | {{#set:LOVE Version=0.6.0}} | ||
{{#set:Description=Callback Functions}} | {{#set:Description=Callback Functions}} | ||
− | == | + | == 다른 언어로 보기 == |
{{i18n|Tutorial:Callback Functions}} | {{i18n|Tutorial:Callback Functions}} |
Latest revision as of 21:30, 6 June 2016
LÖVE의 콜백 함수들은 love.run에 의해 여러가지 작업을 수행하기 위해 호출되며 모두 꼭 있어야 하는 것은 아닙니다. 그러나, 모든 기능이 갖춰진 게임은 이것들을 거의 모두 사용하니 이것들이 무엇인지 알아두는 것이 좋을 겁니다.
프로그래밍이 처음이거나 이 단어에 익숙하지 않은 분들을 위해 설명하자면, 콜백은 무대 뒤쪽에서 일합니다. love.graphics.draw나 math.floor과 같은 일반적인 함수들은 Love나 Lua에서 호출할 수 있습니다. 반면에, 콜백은 당신의 코드가 잘 짜여지게 합니다. 예를 들어, love.load가 게임이 처음 시작할 때(그 어떤 콜백보다도 먼저) 실행되기 때문에, 여기에는 게임을 불러오고 여러가지를 준비하는 코드를 놓는 것이 좋습니다.
Contents
love.load
function love.load()
image = love.graphics.newImage("cake.jpg")
local f = love.graphics.newFont(12)
love.graphics.setFont(f)
love.graphics.setColor(0,0,0,255)
love.graphics.setBackgroundColor(255,255,255)
end
이 함수는 게임이 시작될 때 가장 먼저 실행됩니다. 그리고 이것은 보통 리소스를 불러오고, 변수를 초기화하고 설정하는데 사용됩니다. 이것들은 다른 곳에서도 할 수 있지만, 이것을 단 한번만 한다는 것은 시스템 자원을 많이 아낄 수 있다는 것을 뜻합니다.
love.update
function love.update(dt)
if love.keyboard.isDown("up") then
num = num + 100 * dt -- this would increment num by 100 per second
end
end
이 함수는 끊임없이 실행되고, 아마도 대부분의 계산을 이곳에서 함수가 처리하게 될 것입니다. dt는 "델타 시간"을 의미하고 전에 이 함수가 실행된지 얼마나 지났는지를 의미합니다. (대부분 이것은 0.025714와 같이 아주 작은 값입니다.)
love.draw
function love.draw()
love.graphics.draw(image, imgx, imgy)
love.graphics.print("Click and drag the cake around or use the arrow keys", 10, 10)
end
love.draw
는 뭔가 그리는(이미 그려져 있지 않다면) 곳입니다. 당신이 love.graphics.draw
의 코드를 이 함수 밖에서 실행한다면 아무일도 일어나지 않을 겁니다. 이 함수는 계속 실행되므로 당신이 폰트/색/모드/기타 등등을 이곳의 함수 내에서 바꾼다면 함수가 다시 시작할 때 영향을 미칠 것입니다. 예를 들면:
function love.load()
love.graphics.setColor(0,0,0)
end
function love.draw()
love.graphics.print("This text is not black because of the line below", 100, 100)
love.graphics.setColor(255,0,0)
love.graphics.print("This text is red", 100, 200)
end
love.mousepressed
Available since LÖVE 0.10.0 |
This variant is not supported in earlier versions. |
function love.mousepressed(x, y, button, istouch)
if button == 1 then
imgx = x -- move image to where mouse clicked
imgy = y
end
end
이 함수는 마우스 버튼이 눌렸을 때 실행되며 어떤 버튼이 눌렸는지, 좌표는 어디인지를 반환합니다. 마우스 버튼 값에 대해서는 상수가 반환됩니다. 이 함수는 love.mousereleased
와 비슷합니다.
love.mousereleased
Available since LÖVE 0.10.0 |
This variant is not supported in earlier versions. |
function love.mousereleased(x, y, button, istouch)
if button == 1 then
fireSlingshot(x,y) -- this totally awesome custom function is defined elsewhere
end
end
이 함수는 마우스 버튼이 떼어졌을 때 실행되며 어떤 버튼이 떼어졌는지와 떼어진 부분의 좌표를 반환합니다. 이 함수는 love.mousepressed
와는 별개의 함수이기 때문에 같이 사용할 수도, 별개로 사용할 수도 있습니다.
love.keypressed
function love.keypressed(key, unicode)
if key == 'b' then
text = "The B key was pressed."
elseif key == 'a' then
a_down = true
end
end
이 함수는 키보드가 눌렸을 때 실행되며, 어떤 키가 눌려졌는지를 반환합니다. 키는 키 상수에서 확인할 수 있습니다. 이 함수는 love.keyreleased
와 비슷합니다.
love.keyreleased
function love.keyreleased(key, unicode)
if key == 'b' then
text = "The B key was released."
elseif key == 'a' then
a_down = false
end
end
이 함수는 키보드가 눌렸다 떼어졌을 때 실행되며, 어떤 키가 눌렸다 떨어졌는지를 반환합니다. 이 함수는 love.keypressed
와는 별개의 함수이기 때문에 같이 사용할 수도, 별개로 사용할 수도 있습니다.
love.focus
function love.focus(f)
if not f then
print("LOST FOCUS")
else
print("GAINED FOCUS")
end
end
이 함수는 사용자가 LOVE 창을 클릭하거나 다른 창을 클릭하였을 때 실행됩니다. 예를 들어 사용자가 창 모드 게임을 하고 있을 때 웹 브라우져를 클릭하면, 게임이 그것을 알아차리고 자동으로 일시 정지하게 만들 수 있습니다.
function love.focus(f) gameIsPaused = not f end
function love.update(dt)
if gameIsPaused then return end
-- The rest of your love.update code goes here
end
love.quit
function love.quit()
print("Thanks for playing! Come back soon!")
end
이 함수는 사용자가 창 닫기 버튼(보통 X 버튼)을 클릭했을 때 실행됩니다. 만약 사용자가 게임을 그만 하려고 창을 닫으면, 창이 닫히기 전에 게임이 상태를 저장할 수 있습니다.
콜백 함수들과 기본적인 사용법이었습니다.
다른 언어로 보기
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info