天天看点

MC中使用鼠标的坐标值(xmouse/ymouse)中出现的问题与解决

目标效果:制作潜艇大战时,需要player(海平面上的舰只)根据鼠标点击的位置沿海平面(横版游戏,海平面为y轴)移动

分析:player移动时,其在x轴方向的位置固定不变,侦听鼠标y轴坐标的位置移动

制作:在背景图片上设置鼠标点击事件,产生移动效果,考虑用Moveto来实现:MoveTo("player", SW_X_PlayerPosition, ymouse, 2, "Game Center", "");

           // SW_X_PlayerPosition:player的X轴位置;

           // ymouse:鼠标的y轴位置;

          // 2:移动速度。

遇到的问题:player只能沿海平面的中点往下移动

调试:创建一个text对象,用sprinf来获取坐标信息,查看ymouse的坐标位置,发现ymouse的值从0-480,而player的y轴取值从-240 - 240,因此直接使用这个值就会产生上述问题。

解决:

        修正ymouse的y轴坐标原点,使其与GameCenter的原点一致:ymouse - 240

        MoveTo("player", SW_X_PlayerPosition, ymouse - view.height / 2, 2, "Game Center", "");

        问题解决。

结论:

ymouse的坐标系是以屏幕左上角顶点为原点,而view的坐标系是以屏幕中心为原点。

转载于:https://www.cnblogs.com/mcgame/archive/2013/05/20/3089046.html