Difference between revisions of "love.graphics.draw (日本語)"
m (→画像 (ハムスター玉) を中央に置いて、カーソルキーで角度指定できるようします。) |
(default scale factor for sy = 1, not sx) |
||
Line 22: | Line 22: | ||
{{param|number|r (0)|方向 (弧度)。}} | {{param|number|r (0)|方向 (弧度)。}} | ||
{{param|number|sx (1)|尺度変更係数 (x-軸)。}} | {{param|number|sx (1)|尺度変更係数 (x-軸)。}} | ||
− | {{param|number|sy ( | + | {{param|number|sy (1)|尺度変更係数 (y-軸)。}} |
{{param|number|ox (0)|原点の支距 (x-軸)。}} | {{param|number|ox (0)|原点の支距 (x-軸)。}} | ||
{{param|number|oy (0)|原点の支距 (y-軸)。}} | {{param|number|oy (0)|原点の支距 (y-軸)。}} | ||
Line 45: | Line 45: | ||
{{param|number|r (0)|方向 (弧度)。}} | {{param|number|r (0)|方向 (弧度)。}} | ||
{{param|number|sx (1)|尺度変更係数 (x-軸)。}} | {{param|number|sx (1)|尺度変更係数 (x-軸)。}} | ||
− | {{param|number|sy ( | + | {{param|number|sy (1)|尺度変更係数 (y-軸)。}} |
{{param|number|ox (0)|原点の支距 (x-軸)。}} | {{param|number|ox (0)|原点の支距 (x-軸)。}} | ||
{{param|number|oy (0)|原点の支距 (y-軸)。}} | {{param|number|oy (0)|原点の支距 (y-軸)。}} |
Revision as of 22:30, 30 September 2022
Drawable オブジェクト(Image, Canvas, SpriteBatch, ParticleSystem, Mesh, または Video) に回転、尺度変更(拡大・縮小)および剪断を選択して画面へ描画します。
オブジェクトはローカル座標系に関連づけられて描画されます。原点の標準位置は Image また Canvas の左上端です。尺度変更、剪断および回転の全ての引数はその点と関連するオブジェクトを変形します。さらに、原点の位置は画面座標系により指定できます。
中心の原点の支距により、その中心に対してオブジェクトを回転させることは可能です。必ず回転角度は弧度を与えてください。尺度変更係数へ負数を使用することで中心線から反転することもできます。
注意として支距は回転、尺度変更、または剪断の前に適用されます。尺度変更および剪断は回転の前に適用されます。
オブジェクトの右と左の端は剪断係数へ角を定義することによりずらすことができます。
デフォルトシェーダの使用時、この関数で描画されたものは現在選択中の色で着色します。オブジェクトの原色を保持するには純白を設定します。
関数
概要
love.graphics.draw( drawable, x, y, r, sx, sy, ox, oy, kx, ky )
引数
Drawable drawable
- 描画可能なオブジェクト。
number x (0)
- オブジェクトを描画する座標 (x-軸)。
number y (0)
- オブジェクトを描画する座標 (y-軸)。
number r (0)
- 方向 (弧度)。
number sx (1)
- 尺度変更係数 (x-軸)。
number sy (1)
- 尺度変更係数 (y-軸)。
number ox (0)
- 原点の支距 (x-軸)。
number oy (0)
- 原点の支距 (y-軸)。
返値
ありません。
関数
LÖVE 0.9.0 から使用可能 |
love.graphics.drawq からの置換。 |
概要
love.graphics.draw( texture, quad, x, y, r, sx, sy, ox, oy, kx, ky )
引数
Texture texture
- Quad へテクスチャとして取り込む Texture または Canvas です。
Quad quad
- 画面へ描画する Quad です。
number x
- オブジェクトを描画する座標 (x-軸)。
number y
- オブジェクトを描画する座標 (y-軸)。
number r (0)
- 方向 (弧度)。
number sx (1)
- 尺度変更係数 (x-軸)。
number sy (1)
- 尺度変更係数 (y-軸)。
number ox (0)
- 原点の支距 (x-軸)。
number oy (0)
- 原点の支距 (y-軸)。
number kx (0)
- 剪断係数 (x-軸)。
number ky (0)
- 剪断係数 (y-軸)。
返値
ありません。
関数
LÖVE 11.0 から使用可能 |
この異形は以前のバージョンでは非対応です。 |
概要
love.graphics.draw( drawable, transform )
引数
返値
ありません。
関数
LÖVE 11.0 から使用可能 |
この異形は以前のバージョンでは非対応です。 |
概要
love.graphics.draw( texture, quad, transform )
引数
Texture texture
- Quad へテクスチャとして取り込む Texture または Canvas です。
Quad quad
- 画面へ描画する Quad です。
Transform transform
- 変換用オブジェクト。
返値
ありません。
注意
紛らわしいですが love.graphics.draw 関数と love.draw コールバック関数を混同しないでください。
過去にあった事例 (Require won't work :s - LÖVE) ですが、 love.draw 内で love.graphics.draw(...) と書くところを love.draw(...) と書いてしまった方がおります。
この場合 love.draw は再帰関数として扱われてしまい、結果としてスタックオーバーフロー (stack overflowed) でエラーになりますので注意してください。
用例
画像 (ハムスター玉) を 100 x 100 ピクセルで描画します。
function love.load()
hamster = love.graphics.newImage("hamster.png")
end
function love.draw()
love.graphics.draw(hamster, 100, 100)
end
画像 (ハムスター玉) を中央から 100 x 100 ピクセル、90度回転して描画します。
function love.load()
hamster = love.graphics.newImage("hamster.png")
width = hamster:getWidth()
height = hamster:getHeight()
end
function love.draw()
love.graphics.draw(hamster, 100, 100, math.rad(90), 1, 1, width / 2, height / 2)
end
画像 (ハムスター玉) を中央に置いて、カーソルキーで角度指定できるようします。
local direction = 0
local width, height = 128, 128
function love.load()
creature = love.graphics.newImage("hamster.png")
love.keyboard.setKeyRepeat(true)
end
function love.draw()
love.graphics.draw(creature, 400 - width, 300 - height, math.rad(direction), 1, 1, width / 2, height / 2)
end
function love.keypressed(key)
if (key == 'w') then
direction = direction + math.rad(30)
end
if (key == 's') then
direction = direction - math.rad(30)
end
if (key == 'up') then
direction = 0
end
if (key == 'right') then
direction = 90
end
if (key == 'down') then
direction = 180
end
if (key == 'left') then
direction = 270
end
end
-- キーを離すと上向きに戻します。
function love.keyreleased(key)
direction = 0
end
LÖVE 0.9.0 から使用可能 |
この機能性は以前のバージョンでは非対応です。 |
画像 (ハムスター玉) の上半分を 100 x 100 ピクセルで描画します。
function love.load()
image = love.graphics.newImage("hamster.png")
quad = love.graphics.newQuad(0, 0, 128, 64, image:getWidth(), image:getHeight())
end
function love.draw()
love.graphics.draw(image, quad, 100, 100)
end
関連