0

我一直在尝试使用 Matrix.CreateScale() 函数来放大和缩小我的对象,如下所示:

Matrix.CreateScale(new Vector3(Zoom, Zoom, 0))

但是,我注意到,当我尝试制作 Zoom 1,5 时,它什么也没做,只有数字 1 或 2,但是当它达到它太大/小时,我如何放大和缩小而不迈出这么大的步子,我该如何让它少走些步子?

   public float Zoom
    {
        get { return zoom; }
        set { zoom = value; }
    }


    public Matrix get_transformation(GraphicsDeviceManager graphicsDevice)
    {
        transform =
          Matrix.CreateTranslation(new Vector3(-pos.X, -pos.Y, 0)) *
                                     Matrix.CreateRotationZ(rotation) *
                                     Matrix.CreateScale(new Vector3(Zoom, Zoom, 0)) *
                                     Matrix.CreateTranslation(new Vector3(graphicsDevice.GraphicsDevice.Viewport.Width * 0.0f, graphicsDevice.GraphicsDevice.Viewport.Height * 0.0f, 0));
        return transform;
    }

        //zooming
        float scrollValue = Mouse.GetState().ScrollWheelValue / 480;
        Core.cam.Zoom = scrollValue;

基本上,每次我滚动它都会将缩放值增加 0.25,并且应该做一些事情,但它只会在 4 次滚动后做一些事情(4 * 0.25 = 1)

编辑:

通过更改修复它

float scrollValue = Mouse.GetState().ScrollWheelValue / 480;

float scrollValue = Mouse.GetState().ScrollWheelValue / 480f;
4

0 回答 0