GetParallaxTransform() public méthode

public GetParallaxTransform ( float ratioX, float ratioY ) : Matrix
ratioX float
ratioY float
Résultat Microsoft.Xna.Framework.Matrix
Exemple #1
0
 public void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     var sourceRectangle = new Rectangle(0, 0, TextureManager.SpaceTexture.Texture.Width * RepeatX, TextureManager.SpaceTexture.Texture.Height * RepeatY);
     var scale = new Vector2(
         Game.WorldWidth / TextureManager.SpaceTexture.Texture.Width / ParallaxFactorX / RepeatX,
         Game.WorldHeight / TextureManager.SpaceTexture.Texture.Height / ParallaxFactorY / RepeatY);
     float w = Game.WorldWidth / ParallaxFactorX;
     float h = Game.WorldHeight / ParallaxFactorY;
     spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null, null, camera.GetParallaxTransform(ParallaxFactorX, ParallaxFactorY));
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(0, 0), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(w, 0), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(w, h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(0, h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(-w, h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(-w, 0), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(-w, -h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(0, -h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.Draw(TextureManager.SpaceTexture.Texture, new Vector2(w, -h), sourceRectangle, Color.White, 0.0f, new Vector2(0, 0), scale, SpriteEffects.None, 0.0f);
     spriteBatch.End();
 }