游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: instemast

45度斜角地图编辑器鼠标坐标

[复制链接]

1

主题

50

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2007-9-8 20:02:00 | 显示全部楼层

Re:45度斜角地图编辑器鼠标坐标

那原点所在的(X,Y)屏幕坐标不用知道吗?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-9 09:48:00 | 显示全部楼层

Re: Re:45度斜角地图编辑器鼠标坐标

kimja: Re:45度斜角地图编辑器鼠标坐标

那原点所在的(X,Y)屏幕坐标不用知道吗?


这。。。我不能喂你吃饭吧

1

主题

50

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2007-9-9 19:50:00 | 显示全部楼层

Re: Re: Re:45度斜角地图编辑器鼠标坐标

instemast: Re: Re:45度斜角地图编辑器鼠标坐标



这。。。我不能喂你吃饭吧

也要把问题讲透彻吧!~总不能把没烧好的饭拿来吃吧!~

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2007-9-9 20:33:00 | 显示全部楼层

Re: Re: Re: Re:45度斜角地图编辑器鼠标坐标

kimja: Re: Re: Re:45度斜角地图编辑器鼠标坐标


也要把问题讲透彻吧!~总不能把没烧好的饭拿来吃吧!~


你自己做个加减法不久可以了

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2008-12-24 11:15:00 | 显示全部楼层

有段坐标转换的代码,请大家看看

    public static Point XY2grid(int x, int y)//x,y是屏幕座标
    {
        Point p = new Point(0, 0);
        int tileW = 24;
        int tileH = 12;

        int cx, cy, rx, ry;
        cx = (x / tileW) * tileW + tileW/2;//MS计算出当前X所在的TILE的中心的X坐标
        cy = (y / tileH) * tileH + tileH/2;//MS计算出当前Y所在的TILE的中心的Y坐标

        //这里开始就不明白了,请高手指点
        rx = (x - cx) * tileH/2;
        ry = (y - cy) * tileW/2;

        if (Math.abs(rx)+Math.abs(ry) <= tileW * tileH/4)
        {
            p.x = (x / tileW) * 2;
            p.y = (y / tileH) * 2;
        }
        else
        {
            x -= tileW/2;
            y -= tileH/2;
            p.x = (x / tileW) * 2 + 1;
            p.y = (y / tileH) * 2 + 1;
        }
        return p;
    }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 15:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表