Difference between revisions of "love.graphics.newQuad (日本語)"

m (関連)
m
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Quad (日本語)|Quad]] の新規作成。
 
[[Quad (日本語)|Quad]] の新規作成。
 +
 +
Quad の用途は画像全体ではなく、部品化した画像をオブジェクトとして描画することです。そのため Quad はスプライト・シートやテクスチャ・アトラスにおいて非常に便利です。
 +
 +
例えば、スプライト・アトラスにおいて、同一画像内に複数のスプライトがあるときに Quad を用いると、画像から指定のスプライトを描画します。
 +
 +
また、アニメーション描画用のスプライトにおいて、同一画像内に全コマ(フレーム)があるときに Quad を用いると、アニメーションから指定のフレームを描画します。
 +
 
{{newobjectnotice (日本語)}}
 
{{newobjectnotice (日本語)}}
 
== 関数 ==
 
== 関数 ==
Line 7: Line 14:
 
</source>
 
</source>
 
=== 引数 ===
 
=== 引数 ===
{{param|number|x|[[Image (日本語)|Image]] における左上からの x-軸座標。}}
+
{{param|number|x|[[Image (日本語)|Image]] における左上からの x-軸座標}}
{{param|number|y|[[Image (日本語)|Image]] における左上からの y-軸座標。}}
+
{{param|number|y|[[Image (日本語)|Image]] における左上からの y-軸座標}}
{{param|number|width|[[Image (日本語)|Image]] における Quad の幅。 (必ず 0 以上にしてください)}}
+
{{param|number|width|[[Image (日本語)|Image]] における Quad の幅 (0 以上)}}
{{param|number|height|[[Image (日本語)|Image]] における Quad の高さ。 (必ず 0 以上にしてください)}}
+
{{param|number|height|[[Image (日本語)|Image]] における Quad の高さ (0 以上)}}
{{param|number|sw|[[Image (日本語)|Image]] の幅であり、基準の幅です。 (必ず 0 以上にしてください)}}
+
{{param|number|sw|Quad の基準全幅となる [[Image (日本語)|Image]] の幅 (0 以上)}}
{{param|number|sh|[[Image (日本語)|Image]] の高さであり、基準の高さです。 (必ず 0 以上にしてください)}}
+
{{param|number|sh|Quad の基準全高となる [[Image (日本語)|Image]] の高さ (0 以上)}}
 +
 
 
=== 返値 ===
 
=== 返値 ===
 
{{param|Quad|quad|新規 Quad です。}}
 
{{param|Quad|quad|新規 Quad です。}}
=== 注釈 ===
 
Quad の目的は画像全体の描画とは対照的に、 断片的な画像オブジェクトの描画に使用することです。それはスプライト・シートおよびアトラスに対して最も有用です: スプライト・アトラスにおいて、多数のスプライトは同一画像内に存在しており、 Quad は画像から特定のスプライトを描画するために使用されます。アニメ化されたスプライトにおいて、全フレームが同一画像内に存在しており、 Quad はアニメーションから特定のフレームを描画するために使用されます。
 
 
 
== 用例 ==
 
== 用例 ==
=== 画像の一部を表示するために Quad を使用します: ===
+
=== Quad により部品化した画像を表示します ===
 
<source lang="lua">
 
<source lang="lua">
 
img = love.graphics.newImage("mushroom-64x64.png")
 
img = love.graphics.newImage("mushroom-64x64.png")
  
-- 画像の左上 32x32 の四分区間のみを
+
-- 画像の左上にある寸法が 32x32px の Quad を
-- 表示したいとしましょう:
+
-- 表示します:
 
top_left = love.graphics.newQuad(0, 0, 32, 32, img:getDimensions())
 
top_left = love.graphics.newQuad(0, 0, 32, 32, img:getDimensions())
  
-- そして左下をこちらへ:
+
-- こちらは左下です:
 
bottom_left = love.graphics.newQuad(0, 32, 32, 32, img:getDimensions())
 
bottom_left = love.graphics.newQuad(0, 32, 32, 32, img:getDimensions())
  
Line 42: Line 47:
 
* [[parent::love.graphics (日本語)]]
 
* [[parent::love.graphics (日本語)]]
 
* [[Constructs::Quad (日本語)]]
 
* [[Constructs::Quad (日本語)]]
* [https://love2d.org/forums/viewtopic.php?f=4&t=1208 love.graphics.newQuad's reference height and width (LÖVEフォーラム)]
+
* [https://love2d.org/forums/viewtopic.php?f=4&t=1208 love.graphics.newQuad's reference height and width - LÖVE]
 +
*[https://love2d.org/forums/viewtopic.php?t=78922 Drawing Quads - LÖVE]
 +
* [https://love2d.org/forums/viewtopic.php?t=78565 About love.graphics.newQuad(... sw, sh) - LÖVE]
 +
* [https://love2d.org/forums/viewtopic.php?p=229382 Quads have borders from neighbours (Tileset) - LÖVE]
  
 
[[Category:Functions]]
 
[[Category:Functions]]

Latest revision as of 04:59, 25 September 2019

Quad の新規作成。

Quad の用途は画像全体ではなく、部品化した画像をオブジェクトとして描画することです。そのため Quad はスプライト・シートやテクスチャ・アトラスにおいて非常に便利です。

例えば、スプライト・アトラスにおいて、同一画像内に複数のスプライトがあるときに Quad を用いると、画像から指定のスプライトを描画します。

また、アニメーション描画用のスプライトにおいて、同一画像内に全コマ(フレーム)があるときに Quad を用いると、アニメーションから指定のフレームを描画します。


O.png この関数は love.update または love.draw などから繰り返し呼び出すと動作が重くなることがあります。もし、特定の資源を何度も使う必要がある場合は、一括で作成と格納を行うことで効率的に再利用できます!  



関数

概要

quad = love.graphics.newQuad( x, y, width, height, sw, sh )

引数

number x
Image における左上からの x-軸座標
number y
Image における左上からの y-軸座標
number width
Image における Quad の幅 (0 以上)
number height
Image における Quad の高さ (0 以上)
number sw
Quad の基準全幅となる Image の幅 (0 以上)
number sh
Quad の基準全高となる Image の高さ (0 以上)

返値

Quad quad
新規 Quad です。

用例

Quad により部品化した画像を表示します

img = love.graphics.newImage("mushroom-64x64.png")

-- 画像の左上にある寸法が 32x32px の Quad を 
-- 表示します:
top_left = love.graphics.newQuad(0, 0, 32, 32, img:getDimensions())

-- こちらは左下です:
bottom_left = love.graphics.newQuad(0, 32, 32, 32, img:getDimensions())

function love.draw()
	love.graphics.draw(img, top_left, 50, 50)
	love.graphics.draw(img, bottom_left, 50, 200)
	-- v0.8:
	-- love.graphics.drawq(img, top_left, 50, 50)
	-- love.graphics.drawq(img, bottom_left, 50, 200)
end

関連



そのほかの言語