「MonoGameでSkiaSharpを使う」の版間の差分
ページの作成:「MonoGameでSkiaSharpを使えれば、MonoGame標準では微妙に抜け落ちてる線を引いたり、丸を描いたり、塗りつぶしたりといった描画処...」 |
編集の要約なし |
||
| (3人の利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
[[MonoGame]]で[[SkiaSharp]]を使えれば、MonoGame標準では微妙に抜け落ちてる線を引いたり、丸を描いたり、塗りつぶしたりといった描画処理を簡単に行える。また、MonoGameが不得意な[[文字列]]の描画を[[True Type Font]]を使って組版ばりの品質で行える。日本語文字列の描画も大丈夫。ほぼ[[OS]]にも依存しない。これ重要。 | |||
== 環境構築 == | ==環境構築== | ||
基本的にMonoGameプロジェクトにNuGetでSkiaSharpを突っ込むだけで利用できる。 | 基本的にMonoGameプロジェクトにNuGetでSkiaSharpを突っ込むだけで利用できる。 | ||
| 11行目: | 9行目: | ||
packages.configを書き換える必要がある。この点には注意する必要がある。 | packages.configを書き換える必要がある。この点には注意する必要がある。 | ||
あとは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( | 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 = | StrokeWidth = 50, | ||
IsStroke = true, | IsStroke = true, | ||
}; | }; | ||
// 円を描く | // 円を描く | ||
canvas.DrawCircle( | 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]] | ||