Skip to content

Language Basics zh TW

Shiraishi_AKi edited this page Oct 6, 2026 · 1 revision

่ชž่จ€ๅŸบ็คŽ

English | ็น้ซ”ไธญๆ–‡ | ๆ—ฅๆœฌ่ชž | ํ•œ๊ตญ์–ด

BIT8_CLI ไฝฟ็”จ Lua 5.4 ็ทจๅฏซ้Šๆˆฒ่…ณๆœฌใ€‚

้Šๆˆฒ่…ณๆœฌ้€šๅธธไฝฟ็”จ .b8 ๅ‰ฏๆช”ๅใ€‚BIT8_CLI ไนŸๆไพ›ไธ€ไบ›ไพฟๅˆฉๅฏซๆณ•๏ผŒไพ‹ๅฆ‚ไฝฟ็”จ func ไปฃๆ›ฟ Lua ็š„ functionใ€‚

ๆœฌๆŒ‡ๅ—ไป‹็ดน่ฃฝไฝœ็ฐกๅ–ฎ้Šๆˆฒๆ™‚ๆœƒ็”จๅˆฐ็š„่ชž่จ€ๅŠŸ่ƒฝใ€‚

็ฌฌไธ€ๅ€‹่…ณๆœฌ

ๅปบ็ซ‹ 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 = 0

Lua ๆ”ฏๆดๆ•ธๅญ—ใ€ๅญ—ไธฒใ€ๅธƒๆž—ๅ€ผใ€Tableใ€ๅ‡ฝๅผ็ญ‰่ณ‡ๆ–™ๅž‹ๅˆฅใ€‚

ๆขไปถๅˆคๆ–ท

ไฝฟ็”จ ifใ€elseif ๅ’Œ else๏ผš

health = 5

if health <= 0 then
    print("Game Over")
elseif health < 3 then
    print("Low Health")
else
    print("Ready")
end

Lua ไฝฟ็”จ then ่กจ็คบๆขไปถๅ€ๅกŠ้–‹ๅง‹๏ผŒไธฆไปฅ end ็ตๆŸใ€‚

่ฟดๅœˆ

ๆ•ธๅญ— for ่ฟดๅœˆ๏ผš

for i = 1, 5 do
    print(i)
end

while ่ฟดๅœˆ๏ผš

local count = 0

while count < 5 do
    count = count + 1
end

Table

Lua ็š„ Table ๅฏไปฅๅ„ฒๅญ˜ๅคšๅ€‹ๆ•ธๅ€ผ๏ผš

player = {
    x = 32,
    y = 32,
    health = 10
}

ๅฏไปฅ้€™ๆจฃๅญ˜ๅ–ๆฌ„ไฝ๏ผš

player.x = player.x + 1

Table ็ถ“ๅธธ็”จไพ†ๆ•ด็†้Šๆˆฒ่ณ‡ๆ–™ใ€‚

้Šๆˆฒ็”Ÿๅ‘ฝ้€ฑๆœŸ

ๅŸบๆœฌ็š„ BIT8_CLI ้Šๆˆฒไฝฟ็”จไธ‰ๅ€‹็”Ÿๅ‘ฝ้€ฑๆœŸๅ‡ฝๅผ๏ผš

func init()
end

func update()
end

func draw()
end

init()

้Šๆˆฒๅˆๅง‹ๅŒ–ๆ™‚ๅŸท่กŒใ€‚

็”จไพ†่จญๅฎšๅˆๅง‹ๆ•ธๅ€ผใ€‚

update()

ๅœจๆจกๆ“ฌๆ›ดๆ–ฐๆ™‚ๅŸท่กŒใ€‚

BIT8_CLI ไฝฟ็”จๅ›บๅฎš 30 Hz ๆจกๆ“ฌๆ›ดๆ–ฐใ€‚

้ฉๅˆ่™•็†็งปๅ‹•ใ€่ผธๅ…ฅ่ˆ‡้Šๆˆฒ้‚่ผฏใ€‚

draw()

่ฒ ่ฒฌ็นช่ฃฝ็›ฎๅ‰็š„้Šๆˆฒ็‹€ๆ…‹ใ€‚

็นชๅœ–ๆŒ‡ไปค้€šๅธธๆ”พๅœจ้€™่ฃกใ€‚

็นชๅœ–

ๆธ…้™ค็•ซ้ข๏ผš

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 .

Main Script ่ˆ‡ Node Script

BIT8_CLI ๅŒๆ™‚ๆ”ฏๆด Main Script ๅ’Œ Node Scriptใ€‚

Main Script ่ฒ ่ฒฌๅ”่ชฟๆ•ดๅ€‹้Šๆˆฒใ€‚

Node ๅฏไปฅๆ“ๆœ‰่‡ชๅทฑ็š„่…ณๆœฌ่ˆ‡ๅŸท่กŒ็‹€ๆ…‹ใ€‚

Node Script ๅฏไปฅ้€้Ž self ๅญ˜ๅ–ๆ‰€ๅฑฌ็š„ Nodeใ€‚

ไพ‹ๅฆ‚๏ผš

func update()
    self.x = self.x + 1
end

ๆ›ดๅคš่ณ‡่จŠ่ซ‹้–ฑ่ฎ€ Nodeใ€‚

Main ็ต„่ฃ้Šๆˆฒ๏ผŒNode ๆดปๅœจ้Šๆˆฒ่ฃกใ€‚

ไธ‹ไธ€ๆญฅ

็นผ็บŒ้–ฑ่ฎ€๏ผš

Runtime API

ไนŸๅฏไปฅๆŽข็ดข๏ผš

Clone this wiki locally