「MonoGameでSkiaSharpを使う」の版間の差分

ページの作成:「MonoGameでSkiaSharpを使えれば、MonoGame標準では微妙に抜け落ちてる線を引いたり、丸を描いたり、塗りつぶしたりといった描画処...」
 
編集の要約なし
 
(3人の利用者による、間の4版が非表示)
1行目: 1行目:
MonoGameでSkiaSharpを使えれば、MonoGame標準では微妙に抜け落ちてる線を引いたり、丸を描いたり、塗りつぶしたりといった描画処理を簡単に行える。
[[MonoGame]]で[[SkiaSharp]]を使えれば、MonoGame標準では微妙に抜け落ちてる線を引いたり、丸を描いたり、塗りつぶしたりといった描画処理を簡単に行える。また、MonoGameが不得意な[[文字列]]の描画を[[True Type Font]]を使って組版ばりの品質で行える。日本語文字列の描画も大丈夫。ほぼ[[OS]]にも依存しない。これ重要。
また、MonoGameが不得意な文字列の描画をTrue Type Fontを使って組版ばりの品質で行える。
日本語文字列の描画も大丈夫。


== 環境構築 ==
==環境構築==
基本的にMonoGameプロジェクトにNuGetでSkiaSharpを突っ込むだけで利用できる。
基本的にMonoGameプロジェクトにNuGetでSkiaSharpを突っ込むだけで利用できる。


11行目: 9行目:
packages.configを書き換える必要がある。この点には注意する必要がある。
packages.configを書き換える必要がある。この点には注意する必要がある。


後はSkiaSharpのSKBitmapをMonoGameのTexture2Dに変換できれば楽勝だ。
あとはSkiaSharpのSKBitmapをMonoGameのTexture2Dに変換できれば楽勝だ。
<source lang="csharp">
<source lang="csharp">
     using System;
     using System;
29行目: 27行目:
</source>
</source>


試しに円を描いてみる。
試しに虹色グラデーションな円を描いてみる。
<source lang="csharp">
<source lang="csharp">
using System;
using System;
76行目: 74行目:
// 虹色グラデーションシェーダー
// 虹色グラデーションシェーダー
var shader = SKShader.CreateSweepGradient(
var shader = SKShader.CreateSweepGradient(
new SKPoint(50, 50),
new SKPoint(w/2, h/2),
new[] {
new[] {
new SKColor(0x00,0x00,0xff),
new SKColor(0x00,0x00,0xff),
90行目: 88行目:
{
{
Shader = shader,
Shader = shader,
StrokeWidth = 10,
StrokeWidth = 50,
IsStroke = true,
IsStroke = true,
};
};


// 円を描く
// 円を描く
canvas.DrawCircle(50, 50, 25, paint);
canvas.DrawCircle(w/2, h/2, w/4, paint);


// 描画コマンド実行
// 描画コマンド実行
128行目: 126行目:
</source>
</source>


== 関連項目 ==
==関連項目==
* [[SkiaSharp]]
 
* [[SkiaSharpでSKImageをファイルに保存する]]
*[[SkiaSharp]]
*[[SkiaSharpで日本語文字列を描画する]]
*[[SkiaSharpでSKImageをファイルに保存する]]


[[category: MonoGame]]
[[category: MonoGame]]
[[category: SkiaSharp]]
[[category: SkiaSharp]]