Texture is too big to work on all graphics cards

SpriteBatch.Draw()でテクスチャのサイズが大きすぎるとランタイムエラーが起きたり警告が出たりする。

Warning Texture is too big to work on all graphics cards. This image is sized WWWWxHHHH, but many cards do not support sizes larger than 2048.

つまりXNAの問題というよりはグラフィックカードの制約で、テクスチャのサイズは2048以下にしなくてはならないということだ。 我が家のnvidia君は大丈夫だが、情報処理センター演習室PCの非力なグラフィックカードでは実行時にエラーが起きて動かない。 Platformer starter kit で画面より広い背景をスクロールするのに、 わざわざ背景のテクスチャを分割しているのはそのためらしい。

ゼミでは相変わらずPlatformerをいじっている。 Tile.csをいじってはしごはだいたい出来た。 Gem.csをいじって鍵も出来た。 次にドアやSpikeなどを作っている。 マップをレイヤー化したり起動画面やメニューやゲームオーバー画面も作らないといけない。 Platformerはあまりにもシンプルなプログラムなのでやらねばならないことが多い。