私は love2d に比較的慣れていないので、画像を使用せずに線形グラデーションを描画する簡単な方法があるかどうか疑問に思っていました。夕暮れのシーンを描きたいのですが、背景の上から下に向かって微妙なグラデーションが欲しいのですが、背景を埋めるのに十分な大きさの画像を作成すると大きすぎるようです。
何かご意見は?
必要な高さで幅 1 ピクセルの画像を使用してみて、次のように水平方向に繰り返します。
-- load
bgImage = love.graphics.newImage('gradient.png')
bgImage:setWrap('repeat', 'clamp')
bgQuad = love.graphics.newQuad(
0, 0,
WIDTH, bgImage:getHeight(),
bgImage:getWidth(), bgImage:getHeight()
)
-- draw
love.graphics.drawq(bgImage, bgQuad, X, Y)
X、Y、および WIDTH を必要な値に置き換えます。ここでクワッドを使用すると、Löve は水平方向の繰り返しを処理して非常に高速に描画できます。
(うまくいけば、これは動作しますが、私はそれをテストしていません。)
画像のサイズとパフォーマンスが心配な場合は、1 x n ピクセルの画像を作成するのが最善の方法です。ここで、n はグラデーションの色の数です。たとえば、2 色の縦方向の背景グラデーションが必要な場合:
love.graphics.draw(img,0,0,0,love.graphics.getWidth(),love.graphics.getHeight()/2)
:)