Language Basics ja - Akiaaaa20/Bit8_CLI GitHub Wiki
言語の基礎
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 はゲームの中で生きる。
次へ
次のページ:
関連ページ: