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

m (Added system information sub-category)
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
love.graphics モジュールにおける第一の責務は線、図形、テキスト、[[Image (日本語)|画像]]などの[[Drawable (日本語)|描画可能]]なオブジェクトを画面へ描画することです。第二の責務にはメモリへ外部ファイル([[Image (日本語)|画像]]および[[Font (日本語)|フォント]]も含む)の読み込み、専用オブジェクト ([[ParticleSystem (日本語)|パーティクル・システム]]または [[Canvas (日本語)|Canvas]]) などの作成および画面配置の管理も含まれます。
 
love.graphics モジュールにおける第一の責務は線、図形、テキスト、[[Image (日本語)|画像]]などの[[Drawable (日本語)|描画可能]]なオブジェクトを画面へ描画することです。第二の責務にはメモリへ外部ファイル([[Image (日本語)|画像]]および[[Font (日本語)|フォント]]も含む)の読み込み、専用オブジェクト ([[ParticleSystem (日本語)|パーティクル・システム]]または [[Canvas (日本語)|Canvas]]) などの作成および画面配置の管理も含まれます。
  
LÖVE の座標系における原点は、画面左上端 (0, 0) の位置にあります。X 軸は水平方向です: 最大値は右方向の端です。 Y 軸は水平方向です: 最大値は下方向の端です。
+
LÖVE の座標系における原点は、画面左上端 (0, 0) の位置にあります。X 軸は水平方向です: 最大値は右方向の端です。 Y 軸は水平方向です: 最大値は下方向の端です。また、ピクセルの左上角は (0, 0) の位置で整列します。つまり、ピクセル幅が 1 の線を特定の関数で描画するとき、レンダリング出力で一つ違いエラーの問題 ([https://ja.wikipedia.org/wiki/Off-by-one%E3%82%A8%E3%83%A9%E3%83%BC off-by-one problems]) が発生する恐れがあります。対応策は、左上角ではなくピクセルの中心で座標系を整列します。この処理は <code>x+0.5</code> または <code>y+0.5</code> を渡すか、あるいは <code>love.graphics.translate()</code> で行います。
  
 
[[File:lovecoordsystem.png|LÖVE の座標系]]
 
[[File:lovecoordsystem.png|LÖVE の座標系]]
Line 7: Line 7:
 
ほとんど場合において、画像または形状は左上端の原点から描画を行います(上述の画像を参照)。
 
ほとんど場合において、画像または形状は左上端の原点から描画を行います(上述の画像を参照)。
  
ほとんどの関数において、''グラフィック座標系''を操作するために使用されるため、これは本質としては座標へ投影して表示するため方法です。このように、位置、大きさ、回転などを変更できます。
+
LÖVE の角度に関する注意として、一般的な角度での操作に慣れていると思いますが、角度は 0 ~ 2π (約 6.28) までの範囲値による[https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B8%E3%82%A2%E3%83%B3 ラジアン] (弧度) で表します。座標系の設定方法において、原点は左上角であるため、LÖVE の角度は少し逆方向に見えるためです。つまり、 0 地点の右 (X 軸に従う) は、 &frac14;π 地点は対角線上に右下方向となり、値を増分により '''時計回り''' を続けることで &frac12;π 地点は直線上に下方向となります。
  
 +
 +
ほとんどの関数において、''グラフィック座標系''の操作で使用されるため、これは本質としては座標へ投影して表示する方法です。このように、位置、大きさ、回転などを変更できます。
  
 
== 型 ==
 
== 型 ==
Line 128: Line 130:
  
 
== そのほかの言語 ==
 
== そのほかの言語 ==
{{i18n|love.graphics}}
+
{{i18n (日本語)|love.graphics}}

Latest revision as of 23:57, 17 July 2023

love.graphics モジュールにおける第一の責務は線、図形、テキスト、画像などの描画可能なオブジェクトを画面へ描画することです。第二の責務にはメモリへ外部ファイル(画像およびフォントも含む)の読み込み、専用オブジェクト (パーティクル・システムまたは Canvas) などの作成および画面配置の管理も含まれます。

LÖVE の座標系における原点は、画面左上端 (0, 0) の位置にあります。X 軸は水平方向です: 最大値は右方向の端です。 Y 軸は水平方向です: 最大値は下方向の端です。また、ピクセルの左上角は (0, 0) の位置で整列します。つまり、ピクセル幅が 1 の線を特定の関数で描画するとき、レンダリング出力で一つ違いエラーの問題 (off-by-one problems) が発生する恐れがあります。対応策は、左上角ではなくピクセルの中心で座標系を整列します。この処理は x+0.5 または y+0.5 を渡すか、あるいは love.graphics.translate() で行います。

LÖVE の座標系

ほとんど場合において、画像または形状は左上端の原点から描画を行います(上述の画像を参照)。

LÖVE の角度に関する注意として、一般的な角度での操作に慣れていると思いますが、角度は 0 ~ 2π (約 6.28) までの範囲値によるラジアン (弧度) で表します。座標系の設定方法において、原点は左上角であるため、LÖVE の角度は少し逆方向に見えるためです。つまり、 0 地点の右 (X 軸に従う) は、 ¼π 地点は対角線上に右下方向となり、値を増分により 時計回り を続けることで ½π 地点は直線上に下方向となります。


ほとんどの関数において、グラフィック座標系の操作で使用されるため、これは本質としては座標へ投影して表示する方法です。このように、位置、大きさ、回転などを変更できます。

Canvas (日本語) 作業用の裏画面(バッファ)へオブジェクトを描画します。 Added since 0.8.0
Drawable (日本語) 画面描画用オブジェクト全種の上位型です。
Font (日本語) 画面に描写できる文字の字形を定義します。
Framebuffer (日本語) 対象を画面外へ表示します。 Added since 0.7.0 Removed in 0.8.0
Image (日本語) 描画可能な画像の型。
Mesh (日本語) 二次元ポリゴンメッシュはテクスチャが貼られた図形の描画に使用されます。 Added since 0.9.0
ParticleSystem (日本語) 火炎のような、魅力的な視覚効果を作成するために使用します。
PixelEffect (日本語) ピクセルシェーダーによるエフェクトです。 Added since 0.8.0 Removed in 0.9.0
Quad (日本語) テクスチャの座標情報を有する四辺形。
Shader (日本語) シェーダーによる視覚効果 Added since 0.9.0
SpriteBatch (日本語) 画像の位置を格納して、一回の呼び出して画像を描画します。
Text (日本語) 描画可能なテキスト。 Added since 0.10.0
Texture (日本語) Drawable オブジェクトでテクスチャを表現するための上位型です。 Added since 0.9.1
Video (日本語) Video を描画できるようにします。 Added since 0.10.0

関数

描画

love.graphics.arc (日本語) 円弧を描画します。 Added since 0.8.0
love.graphics.circle (日本語) 円を描画します。
love.graphics.clear (日本語) 画面または有効な Canvas を指定色で消去します。
love.graphics.discard (日本語) 画面または有効な Canvas の内容を廃棄 (破壊) します。 Added since 0.10.0
love.graphics.draw (日本語) オブジェクトを画面へ描画します。
love.graphics.drawLayer (日本語) アレイ・テクスチャをレイヤに描画します。 Added since 11.0
love.graphics.drawq (日本語) 指定された画像を使って Quad を画面へ描画します。 Removed in 0.9.0
love.graphics.ellipse (日本語) 楕円を描画します。 Added since 0.10.0
love.graphics.flushBatch (日本語) 自動バッチ描画が行われたときにレンダリング処理を即時実行します。 Added since 11.0
love.graphics.line (日本語) 線分を描画します。
love.graphics.point (日本語) 点を描画します。 Removed in 0.10.0
love.graphics.points (日本語) 一つ以上の点を描画します。 Added since 0.10.0
love.graphics.polygon (日本語) 多角形を描画します。 Added since 0.4.0
love.graphics.present (日本語) 画面への描画操作結果を表示します。
love.graphics.print (日本語) 画面へテキストを描画します。 Font を設定していない場合、必要ならば(一括で)作成と設定をしてください。
love.graphics.printf (日本語) 語句の折り返しと整列を行い、整形したテキストを描画します。
love.graphics.quad (日本語) 四辺形の形状を描きます。 Removed in 0.9.0
love.graphics.rectangle (日本語) 長方形を描画します。 Added since 0.3.2
love.graphics.stencil (日本語) ステンシルとして幾何学的形状を描きます。 Added since 0.10.0
love.graphics.triangle (日本語) 三角形の描画。 Removed in 0.9.0


オブジェクトの作成

love.graphics.newArrayImage (日本語) アレイイメージ を新規作成します。 Added since 11.0
love.graphics.newCanvas (日本語) Canvas オブジェクトを新規作成します。 Added since 0.8.0
love.graphics.newCubeImage (日本語) キューブマップによる画像の新規作成。 Added since 11.0
love.graphics.newFont (日本語) TrueType フォントまたは BMFont ファイルから Font を新規作成します。
love.graphics.newFramebuffer (日本語) Framebuffer オブジェクトを新規作成します。 Added since 0.7.0 Removed in 0.8.0
love.graphics.newImage (日本語) Image の新規作成。
love.graphics.newImageFont (日本語) 特別な形式の画像から読み込んで Font を新規作成します。 Added since 0.2.0
love.graphics.newMesh (日本語) Mesh の新規作成。 Added since 0.9.0
love.graphics.newParticleSystem (日本語) ParticleSystem の新規作成。
love.graphics.newPixelEffect (日本語) PixelEffect を新規作成します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.newQuad (日本語) Quad を新規作成します。
love.graphics.newScreenshot (日本語) 画面撮影したものを作成して ImageData として返します。
love.graphics.newShader (日本語) Shader オブジェクトの新規作成。 Added since 0.9.0
love.graphics.newSpriteBatch (日本語) SpriteBatch オブジェクトの新規作成。
love.graphics.newStencil (日本語) ステンシルを新規作成します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.newText (日本語) 描画可能な Text (テキスト) オブジェクトを新規作成します。 Added since 0.10.0
love.graphics.newVideo (日本語) 描画可能な Video を新規作成します。 Added since 0.10.0
love.graphics.newVolumeImage (日本語) ボリュームイメージ (3D) を新規作成します。 Added since 11.0
love.graphics.setNewFont (日本語) Font の作成と設定を行います。 Added since 0.8.0
love.graphics.validateShader (日本語) シェーダコードの妥当性を検査します。 Added since 11.0


グラフィックスの状態

love.graphics.getBackgroundColor (日本語) 現在の背景色を取得します。
love.graphics.getBlendMode (日本語) 混合方式を取得します。 Added since 0.2.0
love.graphics.getCanvas (日本語) 現在の対象となっている Canvas を取得します。 Added since 0.8.0
love.graphics.getColor (日本語) 現在の色を取得します。
love.graphics.getColorMask (日本語) 描画時に使用される有効な色成分を取得します。 Added since 0.9.0
love.graphics.getColorMode (日本語) 色の方式を取得します (現在の色により画像がどの様な影響を受けるのか制御します)。 Added since 0.2.0 Removed in 0.9.0
love.graphics.getDefaultFilter (日本語) Image, Canvas, および Font で使用される標準の尺度変更フィルタを返します。 Added since 0.9.0
love.graphics.getDefaultImageFilter (日本語) 標準の尺度変更フィルタを返します。 Added since 0.8.0 Removed in 0.8.0
love.graphics.getDepthMode (日本語) 現在の深度テスト方式と深度バッファへの書き込み可能の有無を取得します。 Added since 11.0
love.graphics.getFont (日本語) 現在の Font オブジェクトを取得します。
love.graphics.getFrontFaceWinding (日本語) 時計周り、または反時計周り順列によるカスタム頂点を有する三角形がフロント・フェーシング (前向き) と考えられるかどうかを取得します。 Added since 11.0
love.graphics.getLineJoin (日本語) 線の連結方式を取得します。 Added since 0.9.0
love.graphics.getLineStipple (日本語) 現在の点描線を取得します。 Removed in 0.8.0
love.graphics.getLineWidth (日本語) 現在の線の幅を取得します。 Added since 0.3.2
love.graphics.getMeshCullMode (日本語) Mesh においてバック・フェーシングの三角形が選択されるかどうかを取得します。 Added since 11.0
love.graphics.getPixelEffect (日本語) 現在の PixelEffect を返します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.getPointSize (日本語) の大きさを取得します。
love.graphics.getPointStyle (日本語) の種類を取得します。 Removed in 0.10.0
love.graphics.getScissor (日本語) 現在の切り抜き範囲を取得します。 Added since 0.4.0
love.graphics.getShader (日本語) 現在のシェーダーを取得します。 Added since 0.9.0
love.graphics.getStackDepth (日本語) 現在の変換/遷移スタックにおける深度を取得します (待避復帰の回数は一致しません)。 Added since 11.0
love.graphics.getStencilTest (日本語) 現在のステンシルにおけるテスト構成を取得します。 Added since 0.10.0
love.graphics.intersectScissor (日本語) 既存の切り抜きにより指定されている長方形の交差により作成された長方形に切り抜きを設定します。 Added since 0.10.0
love.graphics.isActive (日本語) グラフィックスモジュールは使用可能であるかどうかを取得します。 Added since 0.10.0
love.graphics.isGammaCorrect (日本語) ガンマ補正表示の対応状況および有効かどうかを取得します。 Added since 0.10.0
love.graphics.isSupported (日本語) 特定のグラフィックス関数が利用できるか確認します。 Added since 0.8.0 Removed in 0.10.0
love.graphics.isWireframe (日本語) 描画時にワイヤーフレーム・モードが使用されているか取得します。 Added since 0.9.1
love.graphics.reset (日本語) 現在のグラフィック設定を初期状態に戻します。
love.graphics.setBackgroundColor (日本語) 背景色を設定します。
love.graphics.setBlendMode (日本語) 混合方式を設定します。 Added since 0.2.0
love.graphics.setCanvas (日本語) Canvas へ描画操作を取り込みます。 Added since 0.8.0
love.graphics.setColor (日本語) 描画に使用する色を設定します。
love.graphics.setColorMask (日本語) 色マスクの設定。画面への表示および消去時に特定の色の成分を有効または無効にします。 Removed in 0.9.0
love.graphics.setColorMode (日本語) 色の方式を設定します (現在の色により画像がどの様な影響を受けるのか制御します)。 Added since 0.2.0 Removed in 0.9.0
love.graphics.setDefaultFilter (日本語) Image, Canvas, および Font で使用される標準の尺度変更フィルタを設定します。 Added since 0.9.0
love.graphics.setDefaultImageFilter (日本語) 標準の尺度変更フィルタを設定します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.setDepthMode (日本語) 深度テスト方式と深度バッファへの書き込みを構成します。 Added since 11.0
love.graphics.setFont (日本語) 既に読み込んだフォントを現在のフォントとして設定します。
love.graphics.setFrontFaceWinding (日本語) 時計周り、または反時計周り順列によるカスタム頂点を有する三角形がフロント・フェーシング (前向き) と考えられるかどうかを設定します。 Added since 11.0
love.graphics.setInvertedStencil (日本語) 反転されたステンシルを定義します。 Added since 0.8.0 Removed in 0.10.0
love.graphics.setLine (日本語) 線の幅と描画方法を設定します。 Removed in 0.9.0
love.graphics.setLineJoin (日本語) 線の連結方法を設定します。 Added since 0.9.0
love.graphics.setLineStipple (日本語) 点描線の模様を設定します。 Removed in 0.8.0
love.graphics.setLineStyle (日本語) 線の描画方法を設定します。 Added since 0.3.2
love.graphics.setLineWidth (日本語) 線の幅を設定します。 Added since 0.3.2
love.graphics.setMeshCullMode (日本語) Mesh においてバック・フェーシングの三角形が選択されるかどうかを設定します。 Added since 11.0
love.graphics.setPixelEffect (日本語) ピクセル・シェーダーを通ることで描画操作の経路を決定します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.setPoint (日本語) 点の大きさと描画方法を設定します。 Removed in 0.9.0
love.graphics.setPointSize (日本語) の大きさを設定します。
love.graphics.setPointStyle (日本語) の種類を設定します。 Removed in 0.10.0
love.graphics.setRenderTarget (日本語) 描画操作を Framebuffer へ取り込みます。 Added since 0.7.0 Removed in 0.8.0
love.graphics.setScissor (日本語) 切り抜きの設定または解除。 Added since 0.4.0
love.graphics.setShader (日本語) シェーダーを通ることで描画操作の経路を決定します。 Added since 0.9.0
love.graphics.setStencil (日本語) 描画操作に対してステンシルの定義または解放します。 Added since 0.8.0 Removed in 0.10.0
love.graphics.setStencilTest (日本語) ステンシルにおけるテストを構成または無効にします。 Added since 0.10.0
love.graphics.setWireframe (日本語) 描画時にワイヤーフレーム・モードを使用するために設定します。 Added since 0.9.0


座標系

love.graphics.applyTransform (日本語) 現在の座標変換へ指定された Transform オブジェクトを適用します。 Added since 11.0
love.graphics.inverseTransformPoint (日本語) 指定された 2D 位置を画面空間からグローバル座標へ変換します。 Added since 11.0
love.graphics.origin (日本語) 現在の座標変換を初期状態へ戻します。 Added since 0.9.0
love.graphics.pop (日本語) 現在の座標変換を変換スタックから復帰します。
love.graphics.push (日本語) 現在の座標変換を変換スタックへコピーおよび待避します。
love.graphics.replaceTransform (日本語) 指定された Transform オブジェクトで現在の座標変換を置換します。 Added since 11.0
love.graphics.rotate (日本語) 二次元座標系を回転させます。
love.graphics.scale (日本語) 二次元座標系を尺度変更(拡大・縮小)します。
love.graphics.shear (日本語) 座標系の剪断(せんだん)。 Added since 0.8.0
love.graphics.transformPoint (日本語) 指定された 2D 位置をグローバル座標から画面空間へ変換します。 Added since 11.0
love.graphics.translate (日本語) 二次元座標系を平行移動します。


ウィンドウ

love.graphics.checkMode (日本語) 対応しているディスプレイ・モードを確認します。 Removed in 0.9.0
love.graphics.getCaption (日本語) ウィンドウの見出しを取得します。 Removed in 0.9.0
love.graphics.getDPIScale (日本語) ウィンドウの DPI 尺度係数を取得します。 Added since 11.0
love.graphics.getDimensions (日本語) ウィンドウの幅と高さをピクセル単位で取得します。 Added since 0.9.0
love.graphics.getHeight (日本語) ウィンドウの高さをピクセル単位で取得します。 Added since 0.2.1
love.graphics.getMode (日本語) 現在のディスプレイ・モードを返します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.getModes (日本語) 対応しているフルスクリーンモードの一覧を取得します。 Removed in 0.9.0
love.graphics.getPixelDimensions (日本語) ウィンドウの幅と高さをピクセル単位で取得します。 Added since 11.0
love.graphics.getPixelHeight (日本語) ウィンドウの高さをピクセル単位で取得します。 Added since 11.0
love.graphics.getWidth (日本語) ウィンドウの幅をピクセル単位で取得します。 Added since 0.2.1
love.graphics.hasFocus (日本語) ゲームのウィンドウにキーボードのフォーカスがあるかどうか確認します。 Added since 0.8.0 Removed in 0.9.0
love.graphics.isCreated (日本語) ウィンドウが作成されているか確認します。 Removed in 0.9.0
love.graphics.setCaption (日本語) ウィンドウの見出しを設定します。 Removed in 0.9.0
love.graphics.setIcon (日本語) ウィンドウのアイコンを設定します。 Added since 0.7.0 Removed in 0.9.0
love.graphics.setMode (日本語) ディスプレイ・モードを変更します。 Removed in 0.9.0
love.graphics.toggleFullscreen (日本語) フルスクリーン(全画面表示)とウィンドウ表示の相互切り替え。 Removed in 0.9.0


システム情報

love.graphics.getCanvasFormats (日本語) 利用可能なPixelFormat、および各種形式に対応状況を取得します。 Added since 0.9.2
love.graphics.getCompressedImageFormats (日本語) 利用可能な圧縮画像形式と対応状況を取得します。 Added since 0.9.2 Removed in 11.0
love.graphics.getMaxImageSize (日本語) Image および Canvas の対応している最大の幅および高さを取得します。 Added since 0.9.0 Removed in 0.10.0
love.graphics.getMaxPointSize (日本語) 対応しているの最大の大きさを取得します。 Removed in 0.10.0
love.graphics.getRendererInfo (日本語) システムに搭載されているビデオカードおよびドライバに関する情報を取得します。 Added since 0.9.0
love.graphics.getStats (日本語) レンダリング性能関連の統計情報を取得します。 Added since 0.9.0
love.graphics.getSupported (日本語) システムにおける補助グラフィックス機能の対応状況を取得します。 Added since 0.10.0
love.graphics.getSystemLimit (日本語) love.graphics の機能に関するシステム依存の最大値を個別に取得します。 Added since 0.9.1 Removed in 0.10.0
love.graphics.getSystemLimits (日本語) love.graphics の機能に関するシステム依存の最大値を取得します。 Added since 0.10.0
love.graphics.getTextureTypes (日本語) 利用可能なテクスチャの種類における対応状況の有無を個別に取得します。 Added since 11.0


列挙型

AlignMode (日本語) テキストの揃えかた。
ArcType (日本語) 描画可能な各種円弧の形式です。 Added since 0.10.1
BlendAlphaMode (日本語) 色の混合に影響を与える様々な透過方法です。 Added since 0.10.0
CanvasFormat (日本語) Canvas テクスチャの形式。 Added since 0.9.0
ColorMode (日本語) 現在の色により画像が影響を受けるかどうか制御します。 Added since 0.2.0 Removed in 0.9.0
CompareMode (日本語) ピクセルに適用するステンシルテストの種類と深度テストの比較方法です。 Added since 0.10.1
CullMode (日本語) レンダリング時の Mesh 形状を選択する方法。 Added since 11.0
DrawMode (日本語) 中抜き、または塗り潰しで図形の描画するかどうか制御します。
FilterMode (日本語) 画像に対する尺度変更フィルタの適用方法。
GraphicsFeature (日本語) love.graphics.getSupported にて確認できるグラフィックスの機能。 Added since 0.8.0
GraphicsLimit (日本語) システムに依存するグラフィック制限の種類。 Added since 0.9.1
IndexDataType (日本語) 頂点マップのデータ型。 Added since 11.0
LineJoin (日本語) 線の連結方法。
LineStyle (日本語) 線の描画方法。
MeshDrawMode (日本語) Mesh の頂点で使用される描画方法。 Added since 0.9.0
MipmapMode (日本語) Canvas におけるミップマップの有無と動作を制御します。 Added since 11.0
PixelFormat (日本語) テクスチャ, ImageData, および CompressedImageData のピクセル形式です。 Added since 11.0
PointStyle (日本語) 点の描画方法。 Removed in 0.10.0
SpriteBatchUsage (日本語) SpriteBatchMesh に対する使用方法の手がかりです。 Added since 0.8.0
StackType (日本語) love.graphics.push にて使用されるグラフィックス状態におけるスタックの種類です。 Added since 0.9.2
StencilAction (日本語) オブジェクトに接触しているピクセルのステンシル値をステンシル関数で変更する方法。 Added since 0.10.0
TextureFormat (日本語) Image テクスチャ形式です。 Added since 0.9.0 Removed in 0.10.0
TextureType (日本語) テクスチャの形式 (二次元、キューブマップなど) Added since 11.0
VertexAttributeStep (日本語) 描画時における Mesh からの頂点属性データを頂点シェーダがフェッチする頻度。 Added since 11.0
WrapMode (日本語) 大きい四辺形の内側に画像を加工する方法を指定します。


関連


そのほかの言語