コード例 #1
0
ファイル: fbUI.cs プロジェクト: Koneke/Farbase
        // === === === === === === === === === ===

        public Vector2 GetScreenPosition()
        {
            Vector2 ownPosition;

            if (Parent != null)
            {
                ownPosition = Parent.GetChildPosition(this);
            }
            else
            {
                ownPosition = new Vector2(0);

                if (HAlignment == HAlignment.Right)
                {
                    ownPosition.X = (engine.GetSize() - GetSize()).X;
                }
                else if (HAlignment == HAlignment.Center)
                {
                    ownPosition.X =
                        (engine.GetSize() / 2f - GetSize() / 2f).X;
                }

                if (VAlignment == VAlignment.Bottom)
                {
                    ownPosition.Y = (engine.GetSize() - GetSize()).Y;
                }
                else if (VAlignment == VAlignment.Center)
                {
                    ownPosition.Y =
                        (engine.GetSize() / 2f - GetSize() / 2f).Y;
                }
            }

            return(ownPosition);
        }
コード例 #2
0
ファイル: fbCamera.cs プロジェクト: Koneke/Farbase
        //position ON SCREEN
        private void ZoomAt(Vector2 position, float amount)
        {
            amount *= -1;

            if (
                position.X < 0 || position.X > engine.GetSize().X ||
                position.Y < 0 || position.Y > engine.GetSize().Y
                )
            {
                throw new ArgumentException("Bad zoom point.");
            }

            Vector2 deltaSize = Camera.Size - Camera.Size + new Vector2(amount);

            deltaSize.Y = deltaSize.X / engine.GetAspectRatio();

            Vector2 minSize = engine.GetSize() / 20f;

            if (Camera.Size.X + deltaSize.X < minSize.X)
            {
                deltaSize.X = minSize.X - Camera.Size.X;
            }
            if (Camera.Size.Y + deltaSize.Y < minSize.Y)
            {
                deltaSize.Y = minSize.Y - Camera.Size.Y;
            }

            Vector2 bias = position / engine.GetSize();

            Camera.Position -= deltaSize * bias;
            Camera.Size     += deltaSize;
        }
コード例 #3
0
ファイル: fbInterface.cs プロジェクト: Koneke/Farbase
        private void DrawBackground()
        {
            Vector2 position =
                -Engine.GetTextureSize("background") / 2f +
                Engine.GetSize() / 2f;

            position -= Camera.Camera.Position / 10f;

            Engine.Draw(
                Engine.GetTexture("background"),
                new fbRectangle(position, new Vector2(-1)),
                new Color(0.3f, 0.3f, 0.3f),
                1000
                );
        }
コード例 #4
0
ファイル: fbCamera.cs プロジェクト: Koneke/Farbase
        public fbCamera(fbEngine engine)
        {
            this.engine = engine;
            Camera      = new fbRectangle(
                Vector2.Zero,
                engine.GetSize()
                );

            new InputSubscriber(this)
            .Subscribe("+camera-up")
            .Subscribe("+camera-down")
            .Subscribe("+camera-left")
            .Subscribe("+camera-right")
            .Register();
        }