回転縮小
回転縮小するためにはDirectXだと事前に合成する必要があるのですが、XNAだと結構楽ですね
private void DrawSprite(int idx, int x, int y) { this.spriteBatch.Draw( //テクスチャー SpriteTexture[idx], //スプライトを表示する位置 new Vector2(x, y) + new Vector2(54, 75), //テクスチャーの転送領域(nullだと全部) null, //スプライトの色を掛け合わせる色 Color.White, //スプライトの回転角度 MathHelper.ToRadians(this.realRotate), //スプライトを回転させるときの回転軸の位置 new Vector2(SpriteTexture[idx].Width / 2, SpriteTexture[idx].Height / 2), //スプライトの拡大率 new Vector2(108.0f / SpriteTexture[idx].Width, 151.0f / SpriteTexture[idx].Height), //スプライトの 示反転効果 SpriteEffects.None, //スプライトを表示する深度 0.0f ); return ; }
テクスチャーが配列なのはとりあえずカードの表裏用の画像(元のサイズが違うもの)で試したからです。
最初片方の画像が表示されなくて悩んでたら「108.0f」にすべきところを「108」にしてたから、integerで計算されて拡大率が0になってたよ…