Tutorial:Graphic Transformations (日本語)

このチュートリアルではグラフィックの変換における基本的な使用方法を網羅しています。

love.graphics.push/love.graphics.pop

これら二種類の関数は以前の変換状態を保存 (push) および復帰 (pop) することを可能にします。 全ての push および pop は必ず組み合わせ(一対)であり、各組み合わせは他の push/pop 内にて呼び出すことができます。

こちらは用例です:

function love.draw()
	love.graphics.push() --  以前の変換状態を待避します。
		-- 座標系を 下 10、 右 10 へずらします。
		love.graphics.translate(10,10)
		love.graphics.point(0,0)
	love.graphics.pop() -- 以前の変換状態へ復帰します。
	love.graphics.point(0,0) -- 原点を (0,0) へ戻します。
end

変換の順序

グラフィックの変換は交換可能ではありません。これは呼び出し順が最終結果へ影響を与えることを意味します。

こちらは用例です:

function love.draw()
	love.graphics.push()
		love.graphics.translate(10,10)
		love.graphics.scale(-1,-1)
		love.graphics.point(10,10) -- 地点はグローバルな (0,0) に位置しています。
	love.graphics.pop()
	
	love.graphics.scale(-1,-1)
	love.graphics.translate(10,10)
	love.graphics.point(10,10) -- 地点はグローバルな (-20,-20) に位置しています。
end

上記のコードを視覚化するためには二種類の方法があります。 一番目の方法は以前の変換から新規座標系と関連する各変換に関して考慮することです。 例えば、最初の地点への拡大・縮小は新しい原点 (10,10) と関連する地点に適用されます。

二番目の方法 (私の謙虚な意見では直観的である) はグローバルな座標系と関連する 逆順の各変換を視覚化することです。用例として最初の地点を扱います。 拡大・縮小は最初および新規地点 (-10,-10) へ適用されます。最後に、平行移動は新規地点 (0,0) へ移動を行います。

関連


そのほかの言語