カメラの初期設定・描画

ワールドの設定

ワールドとはカメラを使って表示できる範囲のことです。幅が1200px, 高さが800pxのワールドを作成してみましょう。

local gamera = require 'gamera'

function love.load()
  camera = gamera.new(0, 0, 1200, 800)
end

function love.draw()
  camera:draw(function(l, t, w, h)
    love.graphics.setColor(0.7, 0.2, 0.2)
    love.graphics.rectangle("fill", 0, 0, 1200, 800)
    love.graphics.setColor(1, 1, 1)
  end)
end
ワールドの作成

この時点では暗めの赤色が表示されるだけです。これがカメラ機能を使用する最初のステップになります。(8~12行目については後ほど説明します)

また、ワールドの設定はsetWorld関数を使用して行うこともできます。

表示エリアの設定

カメラの表示エリアはデフォルトではスクリーンのサイズになっています。setWindow関数を使用することでカメラの表示エリアを変更することができます。

local gamera = require 'gamera'

function love.load()
  camera = gamera.new(0, 0, 1200, 800)
  camera:setWindow(40, 40, 240, 240)
end

function love.draw()
  camera:draw(function(l, t, w, h)
    love.graphics.setColor(0.7, 0.2, 0.2)
    love.graphics.rectangle("fill", 0, 0, 1200, 800)
    love.graphics.setColor(1, 1, 1)
  end)
end
表示エリアの設定

表示エリアの幅・高さが240pxになりました。また、表示エリアは座標(40, 40)から描画されています。

描画処理

gameraを使用する場合、描画処理はdraw関数の中に書いていきます。

local gamera = require 'gamera'

function love.load()
  camera = gamera.new(0, 0, 1200, 800)
end

function love.draw()
  camera:draw(function(l, t, w, h)
    love.graphics.setColor(0.7, 0.2, 0.2)
    love.graphics.rectangle("fill", 0, 0, 1200, 800)
    love.graphics.setColor(1, 1, 1)
  end)
end