2016-11-14 16 views
0

私が作成しようとしている「ゲーム」には、画面上に多数のボタンと画像がまとめられており、ボタンはベース(これは800x600と思われます)のコンソールサイズ用に設計されています。ボタンとスプライトはすべて設定された位置にあります。すべての画像をコンソールサイズに拡大XNA

問題は、isfullscreen = trueにすると、すべてのイメージを拡大縮小しようとしていることです。イメージは相対位置にとどまりますが、ウィンドウの実際のサイズに基づいてイメージをスケールする必要があります。

答えを探しているうちに、個々の画像を拡大したり、縦横比に基づいて拡大縮小したりしていますが、実際のサイズに応じて、縦横比に関係なくすべての画像を拡大/縮小します。 XNAウィンドウたとえば、3つの100x60スプライトと2つの200x90スプライトが800x600スクリーンに配置されている場合、各イメージを操作することなくウィンドウサイズを1980x720に変更する場合、スプライトを同じ相対サイズに変更するにはどうすればよいですか?

おかげ

編集:私は、規模の行列を使用して試してみたが、それは私が、私はそれぞれの可能なウィンドウサイズの異なるスケールのマトリックスを作成する必要が意味し、その正確な大きさの正確なスケールを設定する必要のようです、それは私が達成しようとしているものではありません。

答えて

0

私がScaleMatrixを使用していた問題は、前に間違って使用していたため、修正されました。

以前は(800,600)の行列を使用していましたが、現在は環境にアクセスできないため、擬似でなければなりません。コードを可変スケールに変更しました:

(F)のXScale = 800/Viewport.Width

(F)YSCALE = 600/Viewport.Height

Matrix.createScale(XScaleの、YSCALE、1、1)

IこれをSpritebatch.Beginに渡しました。問題は、あるものが三角形(背景など)にレンダリングされている場合、別のスプライトバッチでレンダリングしたい場合があります。この尺度が三角形で混乱するため、問題があります。

私は背景の四角形を持っており、縮尺を適用してスクリーンから外しています。ボタン矩形のように拡大縮小したい場合は、その罰金です。

関連する問題