Difference between revisions of "love.graphics.draw (日本語)"
m (Added note.) |
m (→注意) |
||
Line 52: | Line 52: | ||
== 注意 == | == 注意 == | ||
紛らわしいですが love.graphics.draw 関数と love.draw コールバック関数を混同しないでください。 | 紛らわしいですが love.graphics.draw 関数と love.draw コールバック関数を混同しないでください。 | ||
− | 過去にあった事例 ([https://love2d.org/forums/viewtopic.php?t=8764 Require won't work :s - LÖVE]) ですが、 love.draw 内で love.graphics.draw(...) と書くところを love.draw(...) | + | |
+ | 過去にあった事例 ([https://love2d.org/forums/viewtopic.php?t=8764 Require won't work :s - LÖVE]) ですが、 love.draw 内で love.graphics.draw(...) と書くところを love.draw(...) と書いてしまった方がおります。 | ||
+ | |||
+ | この場合 love.draw は再帰関数として扱われてしまい、結果としてスタックオーバーフロー (stack overflowed) でエラーになりますので注意してください。 | ||
== 用例 == | == 用例 == |
Revision as of 03:02, 20 October 2017
Drawable オブジェクト(Image, Canvas, SpriteBatch, ParticleSystem, Mesh, または Video) に回転、尺度変更(拡大・縮小)および剪断を選択して画面へ描画します。
オブジェクトはローカル座標系に関連づけられて描画されます。原点の標準位置は Image また Canvas の左上端です。尺度変更、剪断および回転の全ての引数はその点と関連するオブジェクトを変形します。さらに、原点の位置は画面座標系により指定できます。
中心の原点の支距により、その中心に対してオブジェクトを回転させることは可能です。必ず回転角度は弧度を与えてください。尺度変更係数へ負数を使用することで中心線から反転することもできます。
注意として支距は回転、尺度変更、または剪断の前に適用されます。尺度変更および剪断は回転の前に適用されます。
オブジェクトの右と左の端は剪断係数へ角を定義することによりずらすことができます。
Contents
関数
概要
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 (sx)
- 尺度変更係数 (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 (sx)
- 尺度変更係数 (y-軸)。
number ox (0)
- 原点の支距 (x-軸)。
number oy (0)
- 原点の支距 (y-軸)。
number kx (0)
- 剪断係数 (x-軸)。
number ky (0)
- 剪断係数 (y-軸)。
返値
ありません。
注意
紛らわしいですが 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
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
関連
そのほかの言語
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info