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的坐标系是以屏幕中心为原点。

posted @ 2013-05-20 17:45  zj_king  阅读(615)  评论(0编辑  收藏  举报