예제 #1
0
 private static Button GenerateButton(SpriteFont spriteFont, Texture2D buttonTexture, string buttonText, Vector2 buttonPosition)
 {
     var nextButtonTransform = new Transform2D(buttonPosition, Rectangle.Empty);
     var nextButtonText = new Text(buttonText, spriteFont, new Transform2D(Vector2.Zero, Rectangle.Empty));
     var nextButton = new Button(buttonTexture, nextButtonText, nextButtonTransform);
     return nextButton;
 }
예제 #2
0
        public Transform2D(Vector2 position, Rectangle size, float rotation = 1.0f, Transform2D parent = null)
        {
            this.Position = position;
            this.Size = size;
            this.Rotation = rotation;
            this.Parent = parent;

            this.PositionChanged += this.UpdateSizePositionWithMovement;
        }
예제 #3
0
        public static void GenerateLevelBuildingPanel(ContentManager content)
        {
            var panelTexture = content.Load<Texture2D>("UiTiles/GrayTileTransparency");
            var spriteFont = content.Load<SpriteFont>("Fonts/impact");
            var buttonTexture = content.Load<Texture2D>("UiTiles/Button");

            var panelPosition = new Vector2(100, 100);
            var panelSize = new Rectangle((int)panelPosition.X, (int)panelPosition.Y, 512, 512);
            var levelBuilderPanel = new Panel(panelPosition, panelSize, panelTexture);

            var levelFiles = FileUtils.GetFilenames("Level");
            var levelSelectorObjects = new List<IDrawableGameObject>();
            foreach (string levelFile in levelFiles)
            {
                var objectTexture = content.Load<Texture2D>(levelFile);
                var texturedGameObject = new TexturedGameObject(objectTexture);
                levelSelectorObjects.Add(texturedGameObject);
            }

            var objectSelectorTransform = new Transform2D(levelBuilderPanel.Transform);
            var level = new Level();
            var objectSelector = new ObjectSelector(levelSelectorObjects, objectSelectorTransform, level);

            var nextButton = GenerateButton(spriteFont, buttonTexture, "Next", new Vector2(410, 470));
            nextButton.OnPress += args => objectSelector.SwitchToNextObject();

            var previousButton = GenerateButton(spriteFont, buttonTexture, "Previous", new Vector2(0, 470));
            previousButton.OnPress += args => objectSelector.SwitchToPreviousObject();

            var placeObjectButton = GenerateButton(spriteFont, buttonTexture, "Place", new Vector2(120, 470));
            placeObjectButton.OnPress += args => objectSelector.PlaceGameObjectInLevel();

            levelBuilderPanel.AddChild(objectSelector);
            levelBuilderPanel.AddChild(previousButton);
            levelBuilderPanel.AddChild(nextButton);
            levelBuilderPanel.AddChild(placeObjectButton);

            Repository.GameObjects.Add(level);
            Repository.GameObjects.Add(levelBuilderPanel);
        }
예제 #4
0
 public Transform2D(Transform2D parentTransform)
     : this(Vector2.Zero, Rectangle.Empty, 1.0f, parentTransform)
 {
 }
예제 #5
0
 private void UpdateSizePositionWithMovement(Transform2D sender, TransformMovedEventArgs args)
 {
     this.Size = new Rectangle((int)this.Position.X, (int)this.Position.Y, this.Size.Width, this.Size.Height);
 }
예제 #6
0
 private void MoveWithParent(Transform2D sender, TransformMovedEventArgs args)
 {
     this.Position -= args.Movement;
 }
예제 #7
0
 protected GameObject(Transform2D transform)
 {
     this.Transform = transform;
 }
예제 #8
0
 protected GameObject(Transform2D transform)
 {
     this.Transform = transform;
 }
예제 #9
0
 private void UpdateSizePositionWithMovement(Transform2D sender, TransformMovedEventArgs args)
 {
     this.Size = new Rectangle((int)this.Position.X, (int)this.Position.Y, this.Size.Width, this.Size.Height);
 }
예제 #10
0
 private void MoveWithParent(Transform2D sender, TransformMovedEventArgs args)
 {
     this.Position -= args.Movement;
 }
예제 #11
0
 public Transform2D(Transform2D parentTransform)
     : this(Vector2.Zero, Rectangle.Empty, 1.0f, parentTransform)
 {
 }