Exemplo n.º 1
0
    public void Execute()
    {
        Camera camera = _camera.GetSingleEntity().camera.camera;

        foreach (Entity e in _group.GetEntities())
        {
            PositionComponent     positionComponent = e.position;
            Vector2               position          = e.position.pos;
            SnapPositionComponent snapPosition      = e.snapPosition;

            if (snapPosition.shouldSnapToCameraY)
            {
                snapPosition.y = camera.transform.position.y - camera.orthographicSize;
                snapPosition.x = camera.transform.position.x - camera.orthographicSize * camera.aspect;
            }

            if (position.x < snapPosition.x)
            {
                positionComponent.pos.x = snapPosition.x;
            }
            else if (position.x > (snapPosition.x + snapPosition.width))
            {
                positionComponent.pos.x = snapPosition.x + snapPosition.width;
            }

            if (position.y > (snapPosition.height + snapPosition.y))
            {
                positionComponent.pos.y = snapPosition.height + snapPosition.y;
            }
            else if (position.y < snapPosition.y)
            {
                positionComponent.pos.y = snapPosition.y;
            }
        }
    }
Exemplo n.º 2
0
    void snapCamera(Entity e, Vector2 position)
    {
        SnapPositionComponent snapPosition = e.snapPosition;

        if (temp.x < snapPosition.x)
        {
            temp.x = snapPosition.x;
        }
        else if (temp.x > (snapPosition.x + snapPosition.width))
        {
            temp.x = snapPosition.x + snapPosition.width;
        }

        if (position.y > (snapPosition.height + snapPosition.y))
        {
            position.y = snapPosition.height + snapPosition.y;
        }
        else if (position.y < snapPosition.y)
        {
            position.y = snapPosition.y;
        }
    }