Love2Dのプログラムの基礎知識

最小のプログラム

最小のプログラムは以下の通りです。

 

Love2Dはmain.luaが空っぽでも実行できます。ただし、真っ黒な画面が表示されるだけです。これではゲームと言えません。ここからいろんな処理を加えていきゲームを作成していきます。

重要なコールバック関数

Love2Dのプログラムはコールバック関数の中に処理を書いていきながらゲームを作成していきます。サンプルのプログラムを見てみましょう。

function love.load()
  x, y, w, h = 20, 20, 40, 40
  r, g, b = 1, 0, 0
end

function love.update(dt)
  x = x + 1
  y = y + 1
  r = r - 0.005
  g = g + 0.005
  b = b + 0.005
end

function love.draw()
  love.graphics.setColor(r, g, b)
  love.graphics.rectangle("fill", x, y, w, h)
end
動作サンプル

実行すると、赤い四角形が左上から右下に色を変えながら移動していきます。ここでは処理の内容ではなく、3つのコールバック関数について説明していきます。

love.load

love.loadはゲームの起動時に1度だけ呼び出されるコールバック関数です。変数の宣言や画像の読込みなどの初期化の処理はlove.loadに書いていきます。

love.update

love.updateはフレームが更新されるたびに呼び出される更新処理用のコールバック関数です。座標の変更、サイズの変更、色情報の変更などはlove.updateの中で行うのが基本です。フレームが更新されるたびに呼び出されるため、重たい処理は書かないようにしましょう。

love.draw

love.drawはフレームが更新されるたびに呼び出される描画用のコールバック関数です。図形の描画や画像の描画などはlove.drawの中で行うのが基本です。love.drawの中に画像の読込み処理を書いてしまうと、毎フレームごとに読込み処理が発生してしまうため処理が重くなってしまうので注意しましょう。

他にも入力に関するコールバック関数やエラー処理のコールバック関数が用意されていますが、この3つはゲーム作成では間違いなく使用することになるので覚えておきましょう。