落胆がらくた街

Dr.Rootはサポート終了製品です。

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日続いてる。医者にも分からんらしい。