Language Basics ja - Akiaaaa20/Bit8_CLI GitHub Wiki

言語の基礎

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 .

画面中央付近に 1 ピクセルが描画されます。

関数

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 は数値、文字列、真偽値、テーブル、関数などのデータ型に対応しています。

条件分岐

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

テーブル

Lua のテーブルには複数の値を格納できます。

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

フィールドには次のようにアクセスできます。

player.x = player.x + 1

テーブルはゲームデータの整理によく使用されます。

ゲームのライフサイクル

基本的な BIT8_CLI ゲームでは、3 つのライフサイクル関数を使用します。

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

関連ページ: