private void Art_Image_Preview_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { var image = sender as Image; var row = Grid.GetRow(image) == 2 ? 1 : 0; var col = Grid.GetColumn(image); var isOpened = this.OpenVect[row, col]; if (isOpened) { viewSprite = rm.GetPicture("CG_" + (row * 4 + col + 1) + ".png", ResourceManager.FullImageRect); SpriteDescriptor desc = new SpriteDescriptor() { ResourceType = ResourceType.Pictures }; viewSprite.Descriptor = desc; this.Art_Image_Viewbox.Margin = new Thickness(0, 0, 0, 0); this.RollCounter = 0; this.Art_Image_Viewbox.Source = viewSprite.SpriteBitmapImage; this.Art_Image_Viewbox.Visibility = Visibility.Visible; this.Art_Image_Viewbox.Opacity = 0; desc.ToOpacity = 1; viewSprite.DisplayBinding = viewSprite.AnimationElement = this.Art_Image_Viewbox; SpriteAnimation.OpacityToAnimation(viewSprite, TimeSpan.FromMilliseconds(500), 1); if (GlobalConfigContext.GAME_PERFORMANCE_TYPE == GlobalConfigContext.PerformanceType.HighQuality) { SpriteAnimation.BlurMutexAnimation(canvasSprite, TimeSpan.FromMilliseconds(800), 0, 50); } this.Art_Grid_Controls.IsHitTestVisible = false; } }
protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); s.Texture = Content.Load <Texture2D>("Sprites/elves"); s.ImageSize = new Vector2(64, 64); s.TextureCellsPerRow = 7; s.TextureRows = 2; s.FramesCount = s.GetFramesCount(); sf = Content.Load <SpriteFont>("Fonts/font1"); List <SpriteDescriptor> sd = JsonConvert.DeserializeObject <List <SpriteDescriptor> >(File.ReadAllText("SpritesDescriptor.json")); XmlManager <GameObject> xml = new XmlManager <GameObject>(); //xml.Type = typeof(List<GameObject>); Root r = xml.LoadRoot(Path.Combine(Environment.CurrentDirectory, @"Data/save1.sav")); List <GameObject> goList = xml.LoadList(Path.Combine(Environment.CurrentDirectory, @"Data/save1.sav")); List <GameObject> finalList = new List <GameObject>(); foreach (GameObject g in goList) { GameObject tempObject = (GameObject)Activator.CreateInstance(Type.GetType(g.TypeString)); tempObject.Position = g.Position; tempObject.Sprite = g.Sprite; tempObject.TypeString = g.TypeString; tempObject.OriginalType = GetType(); tempObject.TransformSpeed = g.TransformSpeed; GameObjects.Add(tempObject); } // GameObjects.AddRange(goList); // We neeed to load back Textures2D (f*****g bastards sitting in ram) int index = 0; foreach (GameObject g in GameObjects) { g.Id = index; SpriteDescriptor s = sd.FirstOrDefault(x => ("Sprites/" + x.Name) == g.Sprite.TextureSource); if (!string.IsNullOrEmpty(g.Sprite.TextureSource) && s != null) { g.Sprite.Texture = Content.Load <Texture2D>(g.Sprite.TextureSource); g.Sprite.ImageSize = new Vector2(s.CellWidth, s.CellHeight); g.Sprite.TextureCellsPerRow = s.FramesPerRow; g.Sprite.TextureRows = s.Rows; g.Sprite.FramesCount = g.Sprite.GetFramesCount(); g.FramesCount = g.Sprite.FramesCount; } g.OnCreate(); index++; } }
public UpsellOverlay(string message, ContentManager content) { SpriteDescriptor nagDesc = content.Load <SpriteDescriptorTemplate>("Sprites/UpsellOverlay").Create(); nagDesc.GetSprite <TextSprite>("Bubble").Text = message; nagDesc.GetSprite <TextSprite>("Cast").Text = Resources.UpsellCast; nagDesc.GetSprite <TextSprite>("Badges").Text = Resources.UpsellBadges; nagDesc.GetSprite <TextSprite>("Lures").Text = Resources.UpsellLures; nagDesc.GetSprite <TextSprite>("Fish").Text = Resources.UpsellFish; Sprite = nagDesc.Sprite; }
public StoreItemEntry(StoreItem item, SpriteDescriptor sprite, bool purchaseEnabled) : base(sprite.Sprite) { _descriptor = sprite; _descriptor.GetSprite <CompositeSprite>("Image").Add(item.Image); _descriptor.GetSprite <TextSprite>("Name").Text = item.Name; _descriptor.GetSprite <TextSprite>("Description").Text = item.Description; _descriptor.GetSprite <TextSprite>("Money").Text = item.Cost.ToString(CultureInfo.InvariantCulture); if (!purchaseEnabled) { _descriptor.Sprite.Color = new Color(_descriptor.Sprite.Color, 0.6f); } SelectText = Resources.StoreBuy; }
private void LoadDescriptors() { // It's much easier to grab all the descriptors in one go // Then, they're all available in memory and there's nothing to worry about foreach (var file in Directory.GetFiles(PathUtility.SpriteDescriptorPath, "*.*", SearchOption.AllDirectories)) { var descriptor = SpriteDescriptor.FromFile(file); _spriteDescriptorLookup.Add(descriptor.Name, descriptor); } foreach (var entity in ServiceManager.Entities) { AddSpriteComponent(entity); } }
private MenuScreen BuildControls(FishingGameContext context, ContentManager content) { MenuScreen screen = new MenuScreen(context); screen.LoadContent(content); SpriteDescriptor controlsDesc = content.Load <SpriteDescriptorTemplate>("Sprites/Controls").Create(); controlsDesc.GetSprite <TextSprite>("AText").Text = Resources.MenuControlsA; controlsDesc.GetSprite <TextSprite>("BText").Text = Resources.MenuControlsB; controlsDesc.GetSprite <TextSprite>("StartText").Text = Resources.MenuControlsStart; screen.AddEntry(BuildImageEntry(controlsDesc.Sprite)); screen.LayoutEntries(); return(screen); }
public override void LoadContent(ContentManager content) { base.LoadContent(content); _screenDescriptor.GetSprite <TextSprite>("TextBack").Text = Resources.StoreClose; _entryTemplate = content.Load <SpriteDescriptorTemplate>("Sprites/StoreItem"); _soundPurchase = content.Load <SoundEffect>("Sounds/Money"); _soundPurchaseFail = content.Load <SoundEffect>("Sounds/ShopNoMoney"); _upsellSprite = new UpsellOverlay(Resources.UpsellMessageStore, content).Sprite; SpriteDescriptor unlockSpriteDesc = content.Load <SpriteDescriptorTemplate>("Sprites/UnlockOverlay").Create(); unlockSpriteDesc.GetSprite <TextSprite>("TextUnlock").Text = Resources.MenuPurchase; _unlockSprite = unlockSpriteDesc.Sprite; }
public BadgeMenuEntry(Badge badge, SpriteDescriptor descriptor) : base(descriptor.Sprite) { _descriptor = descriptor; _descriptor.GetSprite <TextSprite>("Name").Text = badge.Name; _descriptor.GetSprite <TextSprite>("Description").Text = badge.Description; if (badge.IsEarned) { _descriptor.GetSprite("Earned").Color = Color.White; _descriptor.GetSprite("NotEarned").Color = Color.TransparentWhite; } else { _descriptor.GetSprite("Earned").Color = Color.TransparentWhite; _descriptor.GetSprite("NotEarned").Color = Color.White; } IsSelectable = false; }
private void Blur_OnClick(object sender, RoutedEventArgs e) { if (blurCount == -1) { Blursd = new SpriteDescriptor() { ResourceType = ResourceType.Pictures }; var rm = ResourceManager.GetInstance(); Blurbgg = rm.GetPicture("UUZ.jpg", ResourceManager.FullImageRect); Image img3 = new Image(); img3.Source = Blurbgg.SpriteBitmapImage; img3.Width = Blurbgg.SpriteBitmapImage.PixelWidth; img3.Height = Blurbgg.SpriteBitmapImage.PixelHeight; Blurbgg.DisplayBinding = img3; Blurbgg.AnimationElement = img3; Blurbgg.Descriptor = Blursd; Canvas.SetLeft(img3, 0); Canvas.SetTop(img3, 0); Canvas.SetZIndex(img3, 5); this.BO_Bg_Canvas.Children.Add(img3); Blurbgg.InitAnimationRenderTransform(); Blursd.BlurRadius = 0; Blursd.ToBlurRadius = 20; } else if (blurCount % 2 == 0) { Blursd.ToBlurRadius = 50; SpriteAnimation.BlurMutexAnimation(Blurbgg, TimeSpan.FromMilliseconds(1000), Blursd.BlurRadius, Blursd.ToBlurRadius); } else { Blursd.ToBlurRadius = 0; SpriteAnimation.BlurMutexAnimation(Blurbgg, TimeSpan.FromMilliseconds(1000), Blursd.BlurRadius, Blursd.ToBlurRadius); } blurCount++; }
private void ProcessLocalPlayer(Entity entity, GameTime gameTime) { // Local players can be moved automatically, then report their status if needed var playerTransform = (TransformComponent)entity.GetComponent(typeof(TransformComponent)); var playerMovementModifier = (MovementModifierComponent)entity.GetComponent(typeof(MovementModifierComponent)); // Get the skin information so we can calculate bounding box collisions var playerSkin = (SkinComponent)entity.GetComponent(typeof(SkinComponent)); var playerDescriptor = SpriteDescriptorLookup[playerSkin.SpriteDescriptorName]; // Move the camera ServiceManager.Camera.Move(-lastTransformVector); // Determine the movement bonus multiplier float movementBonus = 1.0f; if (playerMovementModifier != null) { movementBonus += (float)playerMovementModifier.Amount; } // Apply the multiplier to the velocity and move the position Vector2 nextPosition = playerTransform.LocalPosition; nextPosition += playerTransform.Velocity * movementBonus; // Clamp the x and y so the player won't keep walking offscreen float nextX = MathHelper.Clamp(nextPosition.X + playerDescriptor.BoundingBox.X, 0, ServiceManager.Map.WorldSizePixels.X / 2 - playerDescriptor.BoundingBox.Width); float nextY = MathHelper.Clamp(nextPosition.Y + playerDescriptor.BoundingBox.Y, 0, ServiceManager.Map.WorldSizePixels.Y / 2 - playerDescriptor.BoundingBox.Height); // TODO: This is shitty. Needs to be redone. if (playerTransform.Velocity.LengthSquared() != 0) { // Check Entity Collision if (ServiceManager.Entities != null && ServiceManager.Entities.Count() > 0) { foreach (Entity e in ServiceManager.Entities) { // TODO: Bugfix! Currently 2 arrow keys are needed to get off of bombs. Fix it bitches. if (e != entity && e.HasComponent(typeof(ExplosiveComponent))) { TransformComponent bombTransform = (TransformComponent)e.GetComponent(typeof(TransformComponent)); SkinComponent bombSkin = (SkinComponent)e.GetComponent(typeof(SkinComponent)); SpriteDescriptor bombDescriptor = SpriteDescriptorLookup[bombSkin.SpriteDescriptorName]; Vector2 playerOrigin = playerTransform.LocalPosition + new Vector2(playerDescriptor.BoundingBox.X, playerDescriptor.BoundingBox.Y) + new Vector2(playerDescriptor.BoundingBox.Width, playerDescriptor.BoundingBox.Height) / 2; Vector2 bombOrigin = bombTransform.LocalPosition + new Vector2(bombDescriptor.BoundingBox.X, bombDescriptor.BoundingBox.Y) + new Vector2(bombDescriptor.BoundingBox.Width, bombDescriptor.BoundingBox.Height) / 2; Vector2 relativePosition = playerOrigin - bombOrigin; if (Math.Abs(relativePosition.X) >= (bombDescriptor.BoundingBox.Width / 2) || Math.Abs(relativePosition.Y) >= (bombDescriptor.BoundingBox.Height / 2)) { if ((Math.Sign(playerTransform.Velocity.X) != 0 && Math.Sign(relativePosition.X) != Math.Sign(playerTransform.Velocity.X)) || (Math.Sign(playerTransform.Velocity.Y) != 0 && Math.Sign(relativePosition.Y) != Math.Sign(playerTransform.Velocity.Y))) { Rectangle bombRect = new Rectangle( (int)bombTransform.LocalPosition.X + bombDescriptor.BoundingBox.X, (int)bombTransform.LocalPosition.Y + bombDescriptor.BoundingBox.Y, (int)bombDescriptor.BoundingBox.Width, (int)bombDescriptor.BoundingBox.Height); Rectangle xBBox = new Rectangle((int)nextX, (int)playerTransform.LocalPosition.Y + playerDescriptor.BoundingBox.Y, (int)playerDescriptor.BoundingBox.Width, (int)playerDescriptor.BoundingBox.Height); if (bombRect.Intersects(xBBox)) { nextX = playerTransform.LocalPosition.X + playerDescriptor.BoundingBox.X; } Rectangle yBBox = new Rectangle((int)nextX, (int)nextY, (int)playerDescriptor.BoundingBox.Width, (int)playerDescriptor.BoundingBox.Height); if (bombRect.Intersects(yBBox)) { nextY = playerTransform.LocalPosition.Y + playerDescriptor.BoundingBox.Y; } } } } } } // Check Tile Collision if (ServiceManager.Map != null) { foreach (TmxLayer layer in ServiceManager.Map.Layers) { foreach (TmxLayerTile tile in layer.Tiles) { var set = (TmxTileset)ServiceManager.Map.Tilesets[0]; PropertyDict dict; set.Tiles.TryGetValue((int)tile.GID, out dict); // TODO: Sucks. Temporary, incomplete code. Needs to get fixed. if (MapUtility.IsSolid(ServiceManager.Map.TmxMap, tile.X, tile.Y)) { Rectangle tileRect = new Rectangle(tile.X * 32, tile.Y * 32, 32, 32); Rectangle xBBox = new Rectangle((int)nextX, (int)playerTransform.LocalPosition.Y + playerDescriptor.BoundingBox.Y, (int)playerDescriptor.BoundingBox.Width, (int)playerDescriptor.BoundingBox.Height); if (tileRect.Intersects(xBBox)) { nextX = playerTransform.LocalPosition.X + playerDescriptor.BoundingBox.X; } Rectangle yBBox = new Rectangle((int)nextX, (int)nextY, (int)playerDescriptor.BoundingBox.Width, (int)playerDescriptor.BoundingBox.Height); if (tileRect.Intersects(yBBox)) { nextY = playerTransform.LocalPosition.Y + playerDescriptor.BoundingBox.Y; } } } } } } playerTransform.LocalPosition = new Vector2(nextX - playerDescriptor.BoundingBox.X, nextY - playerDescriptor.BoundingBox.Y); float transformX = playerTransform.LocalPosition.X; float transformY = playerTransform.LocalPosition.Y; float offsetX = playerDescriptor.BoundingBox.Left + playerDescriptor.BoundingBox.Width / 2; float offsetY = playerDescriptor.BoundingBox.Bottom; transformX = Math.Max(transformX - 319 + offsetX, 0); transformX = Math.Min(transformX, ServiceManager.Map.WorldSizePixels.X / 2 - 638); transformY = Math.Max(transformY - 283 + offsetY, 0); transformY = Math.Min(transformY, ServiceManager.Map.WorldSizePixels.Y / 2 - 566); // Move the camera back lastTransformVector = new Vector2(transformX, transformY); ServiceManager.Camera.Move(lastTransformVector); if (playerTransform.Velocity.X != playerTransform.Velocity.Y) { if (playerTransform.Velocity.X < 0) { playerTransform.DirectionalCache = DirectionalCache.Left; } if (playerTransform.Velocity.X > 0) { playerTransform.DirectionalCache = DirectionalCache.Right; } if (playerTransform.Velocity.Y > 0) { playerTransform.DirectionalCache = DirectionalCache.Down; } if (playerTransform.Velocity.Y < 0) { playerTransform.DirectionalCache = DirectionalCache.Up; } } var directionalChange = (playerTransform.Velocity != playerTransform.LastVelocity && playerTransform.Velocity != Vector2.Zero); directionalChange = false; if ((_lastReaction > MovementRate && playerTransform.Velocity != Vector2.Zero) || directionalChange) { // Alert the server out this change in events if needed var packet = new NotifyMovementPacket(playerTransform.Velocity, playerTransform.LocalPosition); NetworkManager.Instance.SendPacket(packet); // Reset reaction timer _lastReaction = 0f; } // Increment reaction timer _lastReaction += (float)gameTime.ElapsedGameTime.TotalSeconds; }
private void button2_Click(object sender, RoutedEventArgs e) { SpriteDescriptor sd = new SpriteDescriptor() { ResourceType = ResourceType.Pictures }; var izettaPoint = SCamera2D.GetScreenCoordination(4, 8); var finePoint = SCamera2D.GetScreenCoordination(4, 11); var zoiPoint = SCamera2D.GetScreenCoordination(4, 24); var rm = ResourceManager.GetInstance(); var izetta = rm.GetPicture("伊泽塔1.png", new Int32Rect(-1, 0, 0, 0)); Image img1 = new Image(); img1.Source = izetta.SpriteBitmapImage; img1.Width = izetta.SpriteBitmapImage.PixelWidth; img1.Height = izetta.SpriteBitmapImage.PixelHeight; izetta.DisplayBinding = img1; izetta.AnimationElement = img1; var izettad = (SpriteDescriptor)sd.Clone(); izettad.ToScaleX = izettad.ToScaleY = 0.4; izetta.Descriptor = izettad; izetta.Descriptor.X = izettaPoint.X - izetta.SpriteBitmapImage.PixelWidth / 2.0; izetta.Descriptor.Y = izettaPoint.Y - izetta.SpriteBitmapImage.PixelHeight / 2.0; //Canvas.SetLeft(img1, 150 - izetta.SpriteBitmapImage.PixelWidth / 2.0); Canvas.SetLeft(img1, izettaPoint.X - izetta.SpriteBitmapImage.PixelWidth / 2.0); Canvas.SetTop(img1, izettaPoint.Y - izetta.SpriteBitmapImage.PixelHeight / 2.0); //Canvas.SetTop(img1, 630 - izetta.SpriteBitmapImage.PixelHeight / 2.0); Canvas.SetZIndex(img1, 50); this.BO_Cstand_Canvas.Children.Add(img1); izetta.InitAnimationRenderTransform(); SpriteAnimation.ScaleToAnimation(izetta, TimeSpan.FromMilliseconds(0), 0.4, 0.4, 0, 0); var fine = rm.GetPicture("公主1.png", new Int32Rect(-1, 0, 0, 0)); Image img2 = new Image(); img2.Source = fine.SpriteBitmapImage; img2.Width = fine.SpriteBitmapImage.PixelWidth; img2.Height = fine.SpriteBitmapImage.PixelHeight; fine.DisplayBinding = img2; fine.AnimationElement = img2; var fined = (SpriteDescriptor)sd.Clone(); fined.ToScaleX = fined.ToScaleY = 0.5; fine.Descriptor = fined; fine.Descriptor.X = finePoint.X - fine.SpriteBitmapImage.PixelWidth / 2.0; fine.Descriptor.Y = finePoint.Y + 100 - fine.SpriteBitmapImage.PixelHeight / 2.0; //Canvas.SetLeft(img2, 400 - fine.SpriteBitmapImage.PixelWidth / 2.0); //Canvas.SetTop(img2, 730 - fine.SpriteBitmapImage.PixelHeight / 2.0); Canvas.SetLeft(img2, finePoint.X - fine.SpriteBitmapImage.PixelWidth / 2.0); Canvas.SetTop(img2, finePoint.Y + 100 - fine.SpriteBitmapImage.PixelHeight / 2.0); Canvas.SetZIndex(img2, 50); this.BO_Cstand_Canvas.Children.Add(img2); fine.InitAnimationRenderTransform(); SpriteAnimation.ScaleToAnimation(fine, TimeSpan.FromMilliseconds(0), 0.5, 0.5, 0, 0); var mt = rm.GetPicture("Zoithyt-4-2.png", new Int32Rect(-1, 0, 0, 0)); Image img4 = new Image(); img4.Source = mt.SpriteBitmapImage; img4.Width = mt.SpriteBitmapImage.PixelWidth; img4.Height = mt.SpriteBitmapImage.PixelHeight; mt.DisplayBinding = img4; mt.AnimationElement = img4; var zoid = (SpriteDescriptor)sd.Clone(); zoid.ToScaleX = zoid.ToScaleY = 0.43; mt.Descriptor = zoid; mt.Descriptor.X = zoiPoint.X - mt.SpriteBitmapImage.PixelWidth / 2.0; mt.Descriptor.Y = zoiPoint.Y - mt.SpriteBitmapImage.PixelHeight / 2.0; Canvas.SetLeft(img4, zoiPoint.X - mt.SpriteBitmapImage.PixelWidth / 2.0); Canvas.SetTop(img4, zoiPoint.Y - mt.SpriteBitmapImage.PixelHeight / 2.0); Canvas.SetZIndex(img4, 50); this.BO_Cstand_Canvas.Children.Add(img4); mt.InitAnimationRenderTransform(); SpriteAnimation.ScaleToAnimation(mt, TimeSpan.FromMilliseconds(0), 0.43, 0.43, 0, 0); var bgg = rm.GetPicture("bg_school.jpg", new Int32Rect(-1, 0, 0, 0)); Image img3 = new Image(); img3.Source = bgg.SpriteBitmapImage; img3.Width = bgg.SpriteBitmapImage.PixelWidth; img3.Height = bgg.SpriteBitmapImage.PixelHeight; bgg.DisplayBinding = img3; bgg.AnimationElement = img3; bgg.Descriptor = (SpriteDescriptor)sd.Clone(); bgg.Descriptor.X = GlobalConfigContext.GAME_WINDOW_WIDTH / 2.0; bgg.Descriptor.Y = GlobalConfigContext.GAME_WINDOW_HEIGHT / 2.0; Canvas.SetLeft(img3, bgg.Descriptor.X - img3.Width / 2); Canvas.SetTop(img3, bgg.Descriptor.Y - img3.Height / 2); Canvas.SetZIndex(img3, 5); this.BO_Bg_Canvas.Children.Add(img3); bgg.InitAnimationRenderTransform(); //bgg.Descriptor.ToScaleX = 0.5; //bgg.Descriptor.ToScaleY = 0.5; //SpriteAnimation.ScaleAnimation(bgg, TimeSpan.Zero, 1, 0.5, 1, 0.5, 0, 0); TransformGroup aniGroup = new TransformGroup(); TranslateTransform XYTransformer = new TranslateTransform(); ScaleTransform ScaleTransformer = new ScaleTransform(); ScaleTransformer.CenterX = GlobalConfigContext.GAME_WINDOW_WIDTH / 2.0; ScaleTransformer.CenterY = GlobalConfigContext.GAME_WINDOW_HEIGHT / 2.0; RotateTransform RotateTransformer = new RotateTransform(); RotateTransformer.CenterX = GlobalConfigContext.GAME_WINDOW_WIDTH / 2.0; RotateTransformer.CenterY = GlobalConfigContext.GAME_WINDOW_HEIGHT / 2.0; CsScaleT = ScaleTransformer; aniGroup.Children.Add(XYTransformer); aniGroup.Children.Add(ScaleTransformer); aniGroup.Children.Add(RotateTransformer); this.BO_Cstand_Viewbox.RenderTransform = aniGroup; TransformGroup aniGroup2 = new TransformGroup(); TranslateTransform XYTransformer2 = new TranslateTransform(); ScaleTransform ScaleTransformer2 = new ScaleTransform(); ScaleTransformer2.CenterX = GlobalConfigContext.GAME_WINDOW_WIDTH / 2.0; ScaleTransformer2.CenterY = GlobalConfigContext.GAME_WINDOW_HEIGHT / 2.0; RotateTransform RotateTransformer2 = new RotateTransform(); RotateTransformer2.CenterX = GlobalConfigContext.GAME_WINDOW_WIDTH / 2.0; RotateTransformer2.CenterY = GlobalConfigContext.GAME_WINDOW_HEIGHT / 2.0; BgScaleT = ScaleTransformer2; aniGroup2.Children.Add(XYTransformer2); aniGroup2.Children.Add(ScaleTransformer2); aniGroup2.Children.Add(RotateTransformer2); this.BO_Bg_Viewbox.RenderTransform = aniGroup2; BgTG = aniGroup2; CsTG = aniGroup; bgg.Descriptor.ScaleX = 0.75; bgg.Descriptor.ScaleY = 0.75; BgScaleT.ScaleX = 1 * 0.75; BgScaleT.ScaleY = 1 * 0.75; }
/// <summary> /// Loads the content for this scene. /// </summary> /// <param name="content">The content manager to load.</param> public void LoadContent(ContentManager content) { Sprite = content.Load <SpriteDescriptorTemplate>("Sprites/Scene").Create(); UpdatePositions(); }