//reuse this code when declaring and setting up sprites public void setupSprite(ref GameSpriteStruct sprite, float widthfactor, float ticksToCrossScreen, float initialX, float initialY, bool initialVisibility) { sprite.widthfactor = widthfactor; sprite.ticksToCrossScreen = ticksToCrossScreen; sprite.spriteRectangle.Width = (int)((displayWidth * widthfactor) + 0.5f); // float aspectRatio = (float)sprite.spriteTexture.Width / sprite.spriteTexture.Height; sprite.spriteRectangle.Height = (int)((sprite.spriteRectangle.Width) + 0.5f); sprite.Xpos = initialX; sprite.Ypos = initialY; sprite.Xspeed = displayWidth / ticksToCrossScreen; sprite.Yspeed = sprite.Xspeed; sprite.Visible = initialVisibility; }
/* void setupSprites() { //This is how to use references so that methods can change the content of variables passed as parameters //setupSprite(ref blueCheese, 0.05f, 200.0f, 200, 100, true); //setupSprite(ref frenchBread, 0.15f, 120.0f, (displayWidth / 2) - 75, displayHeight / 1.3f, true); } */ /// <summary> /// Scaling for different screens, sets initial sprite position and sets movement based on screen size etc. /// </summary> /// <param name="sprite"></param> /// <param name="widthFactor"></param> /// <param name="ticksToCrossScreen"></param> /// <param name="initialX"></param> /// <param name="initialY"></param> /// <param name="initialVisibility">Set item visibility</param> void setupSprite(ref GameSpriteStruct sprite, float widthFactor, float ticksToCrossScreen, float initialX, float initialY, bool initialVisibility) { sprite.WidthFactor = widthFactor; sprite.TicksToCrossScreen = ticksToCrossScreen; sprite.SpriteRectangle.Width = (int)((displayWidth * widthFactor) + 0.5f); float aspectRatio = (float)sprite.SpriteTexture.Width / sprite.SpriteTexture.Height; sprite.SpriteRectangle.Height = (int)((sprite.SpriteRectangle.Width / aspectRatio) + 0.5f); sprite.X = initialX; sprite.Y = initialY; sprite.XSpeed = displayWidth / ticksToCrossScreen; sprite.YSpeed = sprite.XSpeed; sprite.Visible = initialVisibility; }
/// <summary> /// Sets up all the aspects of a given sprite struct. /// </summary> /// <param name="sprite">The sprite to be set up. Passed by reference!</param> /// <param name="widthFactor">This is the scale you want for the sprite, relative to the display.</param> /// <param name="ticksToCrossScreen">How fast this sprite moves.</param> /// <param name="startX">Starting X coordinate.</param> /// <param name="startY">Starting Y coordinate.</param> /// <param name="visibility">Show the thing or not.</param> void setupSprite(ref GameSpriteStruct sprite, float widthFactor, float ticksToCrossScreen, float startX, float startY, bool visibility) { sprite.WidthFactor = widthFactor; sprite.TicksToCrossScreen = ticksToCrossScreen; sprite.AspectRatio = (float)sprite.Texture.Width / sprite.Texture.Height; sprite.Rectangle.Width = (int)((displayWidth * sprite.WidthFactor) + 0.5f); sprite.Rectangle.Height = (int)((sprite.Rectangle.Width / sprite.AspectRatio) + 0.5f); sprite.X = startX; sprite.Y = startY; sprite.XSpeed = displayWidth / sprite.TicksToCrossScreen; sprite.YSpeed = sprite.XSpeed; sprite.Visible = visibility; }