Repository navigation
Language Basics ko
English | ็น้ซไธญๆ | ๆฅๆฌ่ช | ํ๊ตญ์ด
BIT8_CLI๋ ๊ฒ์ ์คํฌ๋ฆฝํธ์ Lua 5.4๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒ์ ์คํฌ๋ฆฝํธ๋ ์ผ๋ฐ์ ์ผ๋ก .b8 ํ์ฅ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. BIT8_CLI๋ Lua์ function ๋์ func๋ฅผ ์ฌ์ฉํ๋ ๋ฑ์ ํธ๋ฆฌํ ๋ฌธ๋ฒ๋ ์ง์ํฉ๋๋ค.
์ด ๊ฐ์ด๋์์๋ ๊ฐ๋จํ ๊ฒ์์ ๋ง๋๋ ๋ฐ ํ์ํ ์ธ์ด ๊ธฐ๋ฅ์ ์๊ฐํฉ๋๋ค.
main.b8 ํ์ผ์ ๋ง๋ญ๋๋ค.
func init()
x = 32
y = 32
end
func update()
end
func draw()
cls(0)
pix(x, y, 7)
endํ๋ก์ ํธ๋ฅผ ์คํํฉ๋๋ค.
bit8 run .ํ๋ฉด ์ค์ ๋ถ๊ทผ์ ํ๋์ ํฝ์ ์ด ๊ทธ๋ ค์ง๋๋ค.
Lua์์๋ ์ผ๋ฐ์ ์ผ๋ก function ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
BIT8_CLI์์๋ func๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
func greet()
print("Hello, BIT8_CLI!")
end์ด๋ ๋ค์ Lua ์ฝ๋์ ๊ฐ์ต๋๋ค.
function greet()
print("Hello, BIT8_CLI!")
end๋ ๋ฌธ๋ฒ ๋ชจ๋ BIT8_CLI ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํจ์๋ ์ธ์๋ฅผ ๋ฐ๊ณ ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค.
func add(a, b)
return a + b
end
result = add(5, 3)Lua ๋ณ์์๋ ๋ช ์์ ์ธ ์๋ฃํ ์ ์ธ์ด ํ์ํ์ง ์์ต๋๋ค.
x = 10
speed = 2
name = "Player"
alive = true์ง์ญ ๋ณ์์๋ local์ ์ฌ์ฉํฉ๋๋ค.
local score = 0Lua๋ ์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, ํ ์ด๋ธ, ํจ์ ๋ฑ ๋ค์ํ ์๋ฃํ์ ์ง์ํฉ๋๋ค.
if, elseif, else๋ฅผ ์ฌ์ฉํฉ๋๋ค.
health = 5
if health <= 0 then
print("Game Over")
elseif health < 3 then
print("Low Health")
else
print("Ready")
endLua์์๋ ์กฐ๊ฑด ๋ค์ then์ ์์ฑํ๊ณ end๋ก ๋ธ๋ก์ ๋ซ์ต๋๋ค.
์ซ์ for ๋ฐ๋ณต๋ฌธ:
for i = 1, 5 do
print(i)
endwhile ๋ฐ๋ณต๋ฌธ:
local count = 0
while count < 5 do
count = count + 1
endLua ํ ์ด๋ธ์๋ ์ฌ๋ฌ ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค.
player = {
x = 32,
y = 32,
health = 10
}ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทผํ ์ ์์ต๋๋ค.
player.x = player.x + 1ํ ์ด๋ธ์ ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ธ BIT8_CLI ๊ฒ์์ ์ธ ๊ฐ์ง ๋ผ์ดํ์ฌ์ดํด ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
func init()
end
func update()
end
func draw()
end๊ฒ์ ์ด๊ธฐํ ์ ์คํ๋ฉ๋๋ค.
์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
์๋ฎฌ๋ ์ด์ ์ ๋ฐ์ดํธ ์ ์คํ๋ฉ๋๋ค.
BIT8_CLI๋ ๊ณ ์ 30 Hz ์๋ฎฌ๋ ์ด์ ์ ์ฌ์ฉํฉ๋๋ค.
์ด๋, ์ ๋ ฅ ๋ฐ ๊ฒ์ ๋ก์ง์ ์ฒ๋ฆฌํฉ๋๋ค.
ํ์ฌ ๊ฒ์ ์ํ๋ฅผ ๊ทธ๋ฆฝ๋๋ค.
๊ทธ๋ฆฌ๊ธฐ ๋ช ๋ น์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ธฐ์ ์์ฑํฉ๋๋ค.
ํ๋ฉด์ ์ง์๋๋ค.
cls(0)ํฝ์ ์ ๊ทธ๋ฆฝ๋๋ค.
pix(32, 32, 7)์ฑ์์ง ์ฌ๊ฐํ์ ๊ทธ๋ฆฝ๋๋ค.
rectfill(10, 10, 20, 20, 7)BIT8_CLI๋ ๊ณ ์ ๋ 64ร64 ๊ฒ์ framebuffer๋ฅผ ์ฌ์ฉํฉ๋๋ค.
btn()์ ์ฌ์ฉํ์ฌ ๋ฒํผ์ด ๊ณ์ ๋๋ ค ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
if btn(LEFT) then
x = x - 1
end์ฌ์ฉํ ์ ์๋ ๋ฒํผ ์์:
UP
DOWN
LEFT
RIGHT
A
B
btnp()๋ ๋ฒํผ์ ๊ณ์ ๋๋ฅด๊ณ ์๋ ์ํ๊ฐ ์๋๋ผ ์๋กญ๊ฒ ๋๋ฆฐ ์ด๋ฒคํธ๋ฅผ ํ์ธํฉ๋๋ค.
๋ค์ ์์ ๋ ๋ณ์, ์ ๋ ฅ ๋ฐ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๊ฒฐํฉํฉ๋๋ค.
func init()
x = 32
y = 32
end
func update()
if btn(LEFT) then
x = x - 1
end
if btn(RIGHT) then
x = x + 1
end
if btn(UP) then
y = y - 1
end
if btn(DOWN) then
y = y + 1
end
end
func draw()
cls(0)
pix(x, y, 7)
end์ ์ฅํ ๋ค ์คํํฉ๋๋ค.
bit8 run .BIT8_CLI๋ Main Script์ Node Script๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค.
Main Script๋ ๊ฒ์ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
Node๋ ์์ฒด ์คํฌ๋ฆฝํธ์ ์คํ ์ํ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
Node Script์์๋ self๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น Node์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์:
func update()
self.x = self.x + 1
end์์ธํ ๋ด์ฉ์ Node ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Main์ ๊ฒ์์ ๊ตฌ์ฑํ๊ณ , Node๋ ๊ฒ์ ์์์ ์ด์๊ฐ๋๋ค.
๋ค์ ํ์ด์ง:
๊ด๋ จ ํ์ด์ง:
Current Version: 0.1.0