์ด 5ํŽธ์œผ๋กœ ๊ณ„ํšํ–ˆ์ง€๋งŒ ์ƒํ™ฉ์„ ๋ณด๊ณ  ์ข€ ๋” ๋นจ๋ฆฌ ๋๋‚˜๊ฑฐ๋‚˜ ์‹ฌํ™” ๊ณผ์ •์„ ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ• ์ˆ˜๋„ ์žˆ์Œ. ์†Œ์Šค์ฝ”๋“œ๋Š” ๋งˆ๋•…ํžˆ ๋„ฃ์„ ๋ฐฉ๋ฒ•์ด ์—†์–ด์„œ ์‚ฌ์ง„์œผ๋กœ ์˜ฌ๋ฆผ. ์ ์  ๋ฌธ์ฒด๊ฐ€ ์ด์ƒํ•ด์ง€๋Š”๊ฒŒ ๋ณด์ด๋Š”๋ฐ ์‚ฌ์‹ค ๊ท€์ฐฎ์•„์„œ ๊ทธ๋žฌ์Œ


1. main.lua ํŒŒ์ผ์˜ ๊ธฐ์ดˆ์ ์ธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋“ค์„ ์ •์˜ํ•ด์ค€๋‹ค.
love.load = ์ง€๊ธˆ์€ ๊ทธ์ € Love2D์—์„œ ์ œ์ผ ์ฒ˜์Œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ฝœ๋ฐฑ์ด๋ผ๊ณ  ์ดํ•ดํ•˜์ž. (์‚ฌ์‹ค์€ love.run์ด ๋จผ์ €๊ธฐ๋Š” ํ•œ๋ฐ ์ด๊ฑด ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ๋งŒ๋‚ ์ผ์€ ์—†์„ ๊ฑฐ๋‹ค.)
love.update = ์ดˆ๊ธฐํ™”๊ฐ€ ๋๋‚˜๋ฉด, ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. ์ฃผ ๋ชฉ์ ์€ ๊ฒŒ์ž„์˜ ์ƒํƒœ ๊ฐฑ์‹ ์ด๋‹ค.
love.draw = ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฝœ๋ฐฑ์ด๋‹ค.

์ด๋Ÿฌํ•œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋“ค์€ ์‚ฌ์‹ค ์ƒ์œผ๋กœ ํ•œ ํŒŒ์ผ์— ํ•จ์ˆ˜ ์ •์˜๋ฅผ ๋ชฐ์•„๋„ฃ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ฒŒ์ž„์„ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋” ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ๋กœ์ง์„ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋Š” Lua๊ฐ€ ์–ด๋–ค ์Šคํƒ€์ผ๋Œ€๋กœ ์ž‘์„ฑํ•ด๋„ ์ž˜ ์ž‘๋™ํ•˜๋Š” ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ๊ฐ•์˜์—์„œ๋Š” ์–ด๋ ค์šด ํ…Œํฌ๋‹‰์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์„ค๋ช… ๋˜ํ•œ ๋‹ฌ๋ ค์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽธํ•˜๊ฒŒ ์ฝ์–ด๋„ ๋œ๋‹ค.

2. ์–ด๋–ค ๊ฒŒ์ž„์„ ๋งŒ๋“ค ๊ฒƒ์ธ์ง€ ๊ตฌ์ƒํ•ด๋ณด์ž.
๋ฏธ๋ฆฌ ์ค€๋น„ํ•œ ๊ฒŒ์ž„ ํ˜•์‹์ด ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์‹ค ๊นŠ๊ฒŒ ์ƒ๊ฐํ•  ํ•„์š”๋Š” ์—†๋‹ค.
"๊ฒŒ์ž„์ด ์‹œ์ž‘ํ•˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ฌด์ž‘์œ„์ธ ํญํƒ„์ด ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑ๋˜๊ณ  ์ด ํญํƒ„์€ ์ผ์ •ํ•œ ์†๋„๋กœ ์›€์ง์ด๋ฉฐ ๋ฒฝ์— ๋ฐ˜์‚ฌ๋œ๋‹ค."
"5์ดˆ์˜ ์นด์šดํŠธ๋‹ค์šด์ด ์ง€๋‚˜๋ฉด ๋งˆ์šฐ์Šค๋กœ ํญํƒ„์„ ํ”ผํ•ด์•ผํ•˜๊ณ , ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ์›๋“ค์˜ ์†๋„๊ฐ€ ์ ์  ๋นจ๋ผ์ง„๋‹ค."
"์˜ค๋ž˜ ์‚ด์•„๋‚จ์„์ˆ˜๋ก ์ ์ˆ˜๊ฐ€ ๋†’๊ณ , ํญํƒ„๊ณผ ๋ถ€๋”ชํžˆ๊ฑฐ๋‚˜ ๊ฒŒ์ž„ ํ™”๋ฉด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ํŒจ๋ฐฐํ•˜๋ฉฐ ์ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•œ๋‹ค."
"์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์ฝ”์ธ์„ ๋ฌด์ž‘์œ„ ์œ„์น˜์— ์ƒ์„ฑํ•˜๋ฉฐ, ๋‹ฟ์„ ๊ฒฝ์šฐ ์›์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์ ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค."
"์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ผ ์–ผ์Œ์„ ๋ฌด์ž‘์œ„ ์œ„์น˜์— ์ƒ์„ฑํ•˜๋ฉฐ, ๋‹ฟ์„ ๊ฒฝ์šฐ ์›์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ํญํƒ„์˜ ์†๋„๊ฐ€ ๋А๋ ค์ง„๋‹ค."

์˜ค๋Š˜ ๊ฐ•์˜๋Š” ์ผ๋‹จ ์œ„์˜ ๋‚ด์šฉ ์ค‘, ์ฒซ๋ฒˆ์งธ ์ค„์„ ๋จผ์ € ๊ตฌํ˜„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

3. ์ผ๋‹จ ๋ฌด์ž‘์ • ์›๋ถ€ํ„ฐ ๊ทธ๋ ค๋ณด์ž.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์ž…๋ฌธํ•˜๋ฉด "Hello, world!"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ํ•ด๋ณด๋“ฏ์ด ์šฐ๋ฆฌ๋Š” ์›์„ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณธ๋‹ค.

function love.draw ()
ย ย  ย love.graphics.circle("line", 0, 0, 25)
end
์œ„ ์ฝ”๋“œ๋Š” ์‹ค์„ ์œผ๋กœ (0, 0)์— ๋ฐ˜์ง€๋ฆ„์ด 25์ธ ์›์„ ๊ทธ๋ฆฌ๋Š” ์ฝ”๋“œ์ด๋‹ค.

์‹คํ–‰ํ•ด๋ณด๋ฉด, ์›์ด ํ™”๋ฉด์„ ๋ฒ—์–ด๋‚˜์„œ ์ผ๋ถ€๋งŒ ํ‘œ์‹œ๋  ๊ฒƒ์ด๋‹ค. ์›ํ•˜๋Š” ์œ„์น˜์— ์›์„ ๊ทธ๋ ค์ค„๋ ค๋ฉด ๋ฐ˜์ง€๋ฆ„์„ ๋”ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

love.graphics.circle("line", 25, 25, 25)

์ด์ œ ์งค๋ฆผ ์—†์ด ์ž˜ ํ‘œ์‹œ๋œ๋‹ค.

์ด ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ด์œ ๋Š” ์›์€ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ ค์ง„๋‹ค๋Š” ๊ฒƒ๊ณผ ์›์˜ ํฌ๊ธฐ๋Š” ๋ฐ˜์ง€๋ฆ„์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ๋ฌผ๋ก  ์‚ฌ์‹ค ๋‚˜๋„ ๋ชฐ๋ž๋‹ค. ์ฐธ๊ณ ๋กœ ์‚ฌ๊ฐํ˜•์€ ์™ผ์ชฝ ์œ„๊ฐ€ ์ค‘์‹ฌ์ ์ด๋‹ค.


์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๋ฉด ์†Œ์Šค์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋จ.

a15714ab041eb360be3335622983746f16c3836e65e5d8eb46d399e12f6ce6d53376c0c81e4b9ecf22496e

4. GameObject๋ฅผ ์ •์˜ํ•ด๋ณด์ž.
GameObject๋Š” ๊ฒŒ์ž„์—์„œ ์›€์ง์ด๋Š” ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ์˜ ๋ฒ ์ด์Šค ํด๋ž˜์Šค์ด๋‹ค. ๊ทธ๋ƒฅ ํญํƒ„, ์ฝ”์ธ, ์–ผ์Œ ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹ˆ๋ƒ๊ณ  ๋ฌผ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋“ค์€ ๋ช‡๊ฐ€์ง€ ๊ณตํ†ต์ ์ด ์žˆ๋‹ค.
์ฒซ์งธ๋กœ, ์œ„์น˜, ์†๋„, ํฌ๊ธฐ ๋“ฑ์˜ ์š”์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค.
๋‘˜์งธ๋กœ, ๊ณตํ†ต๋œ ๋™์ž‘์„ ๊ฐ€์ง„๋‹ค.
์…‹์งธ๋กœ, ๊ธฐ๋ณธ ๋™์ž‘์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

์ด๋ฅผ ์ƒ์†์ด ํ•ด๊ฒฐํ•ด์ค„ ์ˆ˜ ์žˆ๊ณ  Lua๋Š” ์ง์ ‘์ ์œผ๋กœ ์ƒ์†์„ ์ง€์›ํ•˜์ง„ ์•Š์ง€๋งŒ ๋ช‡๊ฐ€์ง€ ์ฝ”๋“œ๋กœ ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € GameObject๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜์ž.
GameObject = {}
function GameObject:new (o)
ย ย  ย o = o or {}
ย ย  ย setmetatable(o, self)
ย ย  ย self.__index = self
ย ย  ย return o
end


์•„๋งˆ ๋””์‹œ์— ๊ธ€ ์˜ฌ๋ผ๊ฐ”์„๋•Œ๋Š” ์†Œ์Šค์ฝ”๋“œ์˜ ๊ณต๋ฐฑ์ด ๋‹ค ์‚ฌ๋ผ์ ธ์„œ ๊ฐœํŒ์ด ๋‚ฌ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์ง€๋งŒ ์‹ ๊ธฐํ•˜๊ฒŒ๋„ Lua๋Š” ๊ทธ๋Ÿฐ ์ƒํ™ฉ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์–ด์„œ ์•„๋ฌด ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•จ! ๊ทธ๋ƒฅ ์•„๋ฌด ์ƒ๊ด€ ์—†์œผ๋‹ˆ๊นŒ ๋ณต๋ถ™ํ•˜์…ˆ. ์•ˆ๋˜๋ฉด ๋Œ“๊ธ€๋กœ ๋งํ•˜๊ณ 


5. GameObject์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋งŒ๋“ค์ž.
์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์€ update, draw, isCollide 3๊ฐœ๋‹ค. ์ด๋“ค์€ ๋ชจ๋‘ ๊ธฐ๋ณธ๊ณผ ๊ณตํ†ต ๋™์ž‘์— ์—ฐ๊ด€๋˜์–ด ์žˆ๋‹ค. ๋‚˜์ค‘์—๋Š” ํ‘๋งˆ๋ฒ•์„ ๋ถ€๋ ค์„œ ์ถฉ๋Œ ๊ฐ์ง€ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์จ๋จน๋Š” ๊ฒƒ๋„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ž„.

a15714ab041eb360be3335622983746f16c3836e65e5d8eb47df99ef2f6ce6d57f94d3990a714bd206b62ead

์†Œ์Šค์ฝ”๋“œ ๊ฐœํŒ๋‚  ๊ฐ€๋Šฅ์„ฑ์„ ๋Œ€๋น„ํ•ด์„œ ๊ทธ๋ƒฅ ์‚ฌ์ง„์œผ๋กœ ์˜ฌ๋ฆผ. ์†Œ์Šค์ฝ”๋“œ ์–ด์ผ€ ์˜ฌ๋ฆฌ์ง€...


update ํ•จ์ˆ˜๋Š” ๋งค ๊ฐฑ์‹ ์ฃผ๊ธฐ๋งˆ๋‹ค ์‹คํ–‰๋  ํ•จ์ˆ˜์ธ๋ฐ ์ง€์ •๋œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ„์† ์›€์ง์ด๊ฒŒ ํ•˜๋Š” ๋‹จ์ˆœํ•œ ์ฝ”๋“œ์ž„.

draw ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ ๋™์ž‘์ธ ํ™”๋ฉด ํ‘œ์‹œ ์—ญํ• ์„ ํ•˜๊ณ 

isCollide ํ•จ์ˆ˜๋Š” ์ถฉ๋Œ ๊ฐ์ง€ ํ•จ์ˆ˜์ธ๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ƒฅ ๋‘ ์  ์‚ฌ์ด์˜ ์ง์„  ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ณ  ์›์˜ ๋‘ ๋ฐ˜์ง€๋ฆ„์„ ๋”ํ•œ ๊ฒƒ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ถฉ๋Œ๋กœ ํŒ์ •๋˜๋Š” ๊ฐ„๋‹จํ•œ ์‹์ž„. ๊ทธ๋ž˜์„œ ์›๋ผ๋ฆฌ์˜ ์ถฉ๋Œ ๊ฐ์ง€์—๋งŒ ์จ๋จน์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‚˜์ค‘์— ์ด๊ฑฐ ํ‘๋งˆ๋ฒ• ๋ถ€๋ ค์„œ ๋งˆ์šฐ์Šค์—๋„ ์ถฉ๋Œ ๊ฐ์ง€ ์ ์šฉ์‹œํ‚ฌ๊ฑฐ์ž„.


6. ํญํƒ„ ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•ด๋ณด์ž.
์‚ฌ์‹ค Lua์—์„œ์˜ ์ƒ์†์€ ์˜์™ธ๋กœ ์•„์ฃผ ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๋‹ค. ์•„๋ž˜ ํ•œ ์ค„์˜ ์ฝ”๋“œ๋กœ ๋๋‚œ๋‹ค.
Bomb = GameObject:new()

์ด์ œ Bomb์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฑฐ๋‹ค. ์›๋ฆฌ๋Š” ์‹ฌํ™” ๋•Œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ setmetatable์ด๋‚˜ __index๋ฅผ ์„ค์ •ํ•œ๊ฒŒ ์ƒ์†์„ ์œ„ํ•œ ๋นŒ๋“œ์—…์ด๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ ํ•˜๋ฉด ์ด ์ผ๋ จ์˜ ์ฝ”๋“œ๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์—†๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋ฒ ์ด์Šค ํด๋ž˜์Šค์—์„œ ์ฐพ์œผ๋ ค๊ณ  ์‹œ๋„ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ฆ‰, ์›๋ž˜๋Š” Bomb์—๋Š” new, update, draw, isCollide ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜ธ์ถœ ์‹œ์ ์—์„œ ์—†๋Š” ์ธ๋ฑ์Šค๋Š” ๋ฒ ์ด์Šค ํด๋ž˜์Šค์—์„œ ์ฐพ๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋‹ˆ Bomb์˜ ๋ฒ ์ด์Šค ํด๋ž˜์Šค๋Š” GameObject์ด๊ณ  ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋Œ€์‹  ํ˜ธ์ถœํ•˜๋Š” ๊ฑฐ๋‹ค.

๊ทผ๋ฐ ํญํƒ„ ๊ฐ์ฒด๋Š” ์‚ฌ์‹ค ๋ญ ๋”ฑํžˆ ์ •์˜ํ•ด์ค„๊ฒŒ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ธฐ๋ณธ ๋™์ž‘์„ ์ด๋ฏธ ๋ฒ ์ด์Šค ํด๋ž˜์Šค์—์„œ ๋‹ค ์ •์˜๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ Bomb๋Š” ์‚ฌ์‹ค GameObject์™€ ๋‹ค๋ฅผ๊ฒŒ ์—†๋‹ค. ๋Œ€์‹  Bomb ๋งŒ์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ •์˜ํ•ด๋ณด์ž. ํญํƒ„์€ ๋ˆˆ์— ์ž˜ ๋„์–ด์•ผ ํ•˜๋‹ˆ ๋นจ๊ฐ„์ƒ‰์ด์˜€์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ Bomb = GameObject:new() ์•„๋ž˜์— ๋„ฃ์ž.
Bomb.color = { red = 1, green = 0, blue = 0, }


7. ํญํƒ„์„ ๋ฐฐ์น˜ํ•ด๋ณด์ž.

์‚ฌ์ •์ƒ ์ฝ”๋“œ๋Š” ์•„๋ž˜์— ์žˆ๋Š” ์‚ฌ์ง„์œผ๋กœ ๋Œ€์ฒด

Lua๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
(1). ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.
print("Hello")
(2). ํ•จ์ˆ˜์˜ ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ฌธ์ž์—ด์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์„ ๊ฒฝ์šฐ, ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ด„ํ˜ธ์—†์ด ๋ฌธ์ž์—ด๋งŒ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
print "Hello"
(3). ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ƒ๊ด€์—†์ด, ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑ ๋ฐ ์ „๋‹ฌํ•˜๋ฉด์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
print {}

Lua๋Š” ์ด๋ฆ„ ๋ถ™ํžŒ ์ธ์ž๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ 3๋ฒˆ์˜ ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด ๋น„์Šทํ•œ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๊ณ , ๋˜ํ•œ ๋„˜๊ฒจ์ง„ ์ธ์ž๊ฐ€ ๊ณง ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„๊ฐ€ ๋˜๋ฏ€๋กœ ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๋ฉฐ ๊ฐ€๋…์„ฑ๋„ ์ข‹๋‹ค.

for ๋ฌธ์— ๋Œ€ํ•œ ๊นŠ์€ ์„ค๋ช…์€ ์‹ฌํ™”์—์„œ...


8. ํญํƒ„์„ ํ‘œ์‹œํ•ด๋ณด์ž.
love.draw ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ด๋ณด์ž.
function love.draw ()
ย ย  ย for _, v in ipairs(bombs) do
ย ย  ย ย ย ย  v:draw()
ย ย  ย end
end

ipairs๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์—ด๊ฑฐํ•˜๋Š” ๋ฐ˜๋ณต์ž์ด๋‹ค.
pairs์™€ ipairs์˜ ์ฐจ์ด:
pairs๋Š” ํ‚ค๋กœ ์ ‘๊ทผํ•˜๊ณ , ipairs๋Š” ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•œ๋‹ค. pairs๋Š” ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ipairs๋Š” ์ˆซ์ž ์ธ๋ฑ์Šค๋ผ๋Š” ๊ฐ€์ • ํ•˜์— ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋œ๋‹ค.

a15714ab041eb360be3335622983746f16c3836e65e5d8eb40db9fee2f6ce6d5438af01dca05c957d21a9d


์ด์ œ ํญํƒ„์ด ๊ฒŒ์ž„์— ๋ณด์ผ ๊ฑฐ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํญํƒ„์ด ์›€์ง์ด์ง„ ์•Š๋Š”๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์›€์ง์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?


9. ๊ฒŒ์ž„์„ ๊ฐฑ์‹ ํ•ด๋ณด์ž.
love.update ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ด๋ณด์ž.
function love.update (dt)
ย ย  ย for _, v in ipairs(bombs) do
ย ย  ย ย ย ย  v:update(dt)
ย ย  ย end
end

์ด์ œ ํญํƒ„์ด ์›€์ง์ด๊ธฐ ์‹œ์ž‘ํ• ๊ฑฐ๋‹ค.

dt๋Š” ๋ธํƒ€ ํƒ€์ž„์ด๋ผ๋Š”๋ฐ ์‚ฌ์‹ค ๋‚˜๋„ ์ž˜ ๋ชจ๋ฆ„. ๋Œ€์ถฉ ํ”„๋ ˆ์ž„ ์†๋„๊ฐ€ ๊ฒŒ์ž„ ๊ฐฑ์‹ ์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ณด์ •๊ฐ’์ด๋ผ๊ณ ๋งŒ ์•Œ๊ณ  ์žˆ์œผ์…ˆ. ๋ญ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ํ”„๋ ˆ์ž„ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’์œผ๋ฉด ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ผ์ง„๋‹ค๊ฑฐ๋‚˜...


10. ๋ฒฝ ๋ฐ˜์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž.
์‚ฌ์‹ค isCollide ํ•จ์ˆ˜๋ฅผ ๋ฒฝ ๋ฐ˜์‚ฌ์— ์“ธ ์ˆ˜๋Š” ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฒฝ์€ ์›ํ˜•์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ณ„๋„์˜ ๊ฐ์ง€ ๋กœ์ง์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋ƒฅ ํ™”๋ฉด์„ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒƒ์„ ์กฐ๊ฑด์œผ๋กœ ํ•ด์„œ ๋ฐฉํ–ฅ์„ ํŠ•๊ฒจ์ง€๊ฒŒ ๋งŒ๋“ค์ž.


์•„๋ž˜์— ์žˆ๋Š” ๋‘๊ฐœ์˜ ํ•จ์ˆ˜์ค‘์— ์•„๋ฌด๊ฑฐ๋‚˜ ๊ณจ๋ผ๋‹ค ์“ด๋‹ค. ๊ฒฐ๊ณผ์˜ ์ฐจ์ด๋Š” ์—†๋‹ค. ๋Œ€์ถฉ ์œ„์—๋Š” ๋ป˜์ง“ํ•˜๋ฉด์„œ ์˜๋„ํ•œ ๊ฐ’์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฑฐ๊ณ  ์•„๋ž˜๋Š” ๊ทธ๋ƒฅ ์‹ฌํ”Œํ•˜๊ฒŒ and or๋กœ ์ฒ˜๋ฆฌํ•œ๊ฑฐ.

a15714ab041eb360be3335622983746f16c3836e65e5d8eb40de99e42f6ce6d53207ce81c5e5476435df8434

https://drive.google.com/file/d/1pXieLeqaQeVIqPbles9YqniYawrAFiz7/view?usp=sharing

์ „์ฒด ์†Œ์Šค์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์— ์žˆ์Œ. ์ผ๋‹จ ๊ฐ•์˜์šฉ์œผ๋กœ ํ•œ ํŒŒ์ผ์— ๋ชฐ์•„์“ด๋‹ค๊ณ  ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ƒˆ๋กœ์งœ๋‹ค์‹œํ”ผ ํ–ˆ๋Š”๋ฐ ์›๋ž˜๋Š” ์–ด๋А์ •๋„ ์™„์„ฑ์€ ๋˜์–ด์žˆ์Œ.


๊ฐœ์ถ”๋Š” ๋”ฑํžˆ ๋ฐ”๋ผ์ง€๋„ ์•Š๋Š”๋ฐ ํ”ผ๋“œ๋ฐฑ ์žˆ์œผ๋ฉด ์ ๊ทน์ ์œผ๋กœ ํ•ด์คฌ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค ๊ทธ๋Ÿผ 2ํŽธ์—์„œ ๋ณด์ž~