XNA实践鼠标篇根据点击坐标移动图片(四)

看过了《XNA实践键盘篇--根据方向键移动图片(三)》后,是不是有点意犹未尽的感觉啊,那下我们来感受下XNA是怎么处理鼠标事件的啦,以前的试验就保存好吧,我们来新建一个项目“MySecondGame”,这次就不给所有的代码了,看过以前的文章就清楚了。

定义类内的“全局变量”:

        /// <summary>
        /// 图片的位置
        /// </summary>
        private Vector2 picPosition;
        /// <summary>
        /// 定义2D的纹理图片
        /// </summary>
        private Texture2D texture;

我们在构造函数里实例化一下2维的向量变量:

picPosition = new Vector2();

在update(GameTime gameTime)的时候需要用到,我以前也说过,这个函数是个很重要的函数来的。

在加载游戏内容的的函数LoadContent()里实例化一下:

texture = Texture2D.FromFile(graphics.GraphicsDevice, "test.jpg");//我们还是将之前的图片拷贝到当前的DEBUG文件里

下面开始进入Update(GameTime gameTime)来捕获鼠标事件

            MouseState mouseState = Mouse.GetState();//获取鼠标点击的状态
            if (mouseState.LeftButton == ButtonState.Pressed)//获取鼠标按是否按下了左键
            {

      //定位图片到鼠标当前点击的位置
                picPosition.X = mouseState.X;
                picPosition.Y = mouseState.Y;
            }

就这么几行代码就完成了通过鼠标定位图片是不是很惊呀啊,MS就是这样的傻瓜式编程了。

我们再到Draw(GameTime gameTime)函数里将加载到2D纹理对象的图片画到游戏的界面上来

            spriteBatch.Begin();
            spriteBatch.Draw(texture, picPosition, Color.White);
            spriteBatch.End();

OK了,按一下F5运行一下看看,在游戏的界面点一下鼠标的左键,这个时候,游戏界面的图片是不是移动到鼠标点击的位置了呢...

但是,这个效果不怎么美观啊,都看不到图片移动的过程的,回顾上一篇的文章,我们说到的用键盘控制图片移动,那么,要实现图片慢慢移动鼠标点击的位置就不难实现了。

这个问题将会在下一篇公布代码。

原文地址:https://www.cnblogs.com/magic_evan/p/1862029.html