XNA(MonoGame) 画面サイズに合わせて描画スプライトをスケーリングする
MSDNの
の内容が嘘っぱち(XNA4.0の場合)なので報告ついでにその内容のコピーをメモ
XNAなんてオワコンwwwとか思ってたらMonoGameで使いますよみたいな話だった
ただ直すべき部分は一箇所なので大したミスでも無いんだけど…
Draw メソッドで、SpriteBatch.Begin を呼び出し、LoadContent で作成したスケーリング行列を渡します。
この部分がまるで反映されてない。
原文
spriteBatch.Begin();
は、 正しくは
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, null, null, SpriteScale);
幾つか不満があって、まずこのBeginメソッド、デフォルト引数の類が使えず、Matrixを渡すにはその前に大量の引数を渡さなきゃならん。というのも、デフォルト引数は「コンパイル時に決定される定数」じゃないと使えないという性質があって、基本型以外の型を渡せないんだな。
大体の引数はそんな滅多に使うもんでも無さそうだからnullでいいと思うんだが、まだXNAは触り始めたばっかでよう分からん。誰かいい方法あったら教えてくれませんかね。
ちなみに風邪のような何かでもうかれこれ熱が13日続いてる。医者にも分からんらしい。