- 浏览: 1060406 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
http://bbs.9ria.com/viewthread.php?tid=71405&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D86400
首先感谢两位前辈在研究完之后放出原代码。
让我们这些后来者能够循着前人的脚步快速进步。
最终结论:
浪子的 我不太理解........... 貌似是在两套坐标系中转来转去............我晕!太高深了!
小超的那个,经过一番查证得出个结论:
TMD 少一行代码 害死人啊!
下面贴出 Staggered 坐标转换正确代码
这里还有一个
http://bbs.9ria.com/thread-39884-1-1.html
再说一下我的做法,就是切成矩形栅格,然偶看点落在哪个矩形里,再看点落在矩形中的哪个三角形中,最后根据三角形类型(是菱形的哪部分),以及当前矩形的行列值,就可以算出来了
看了半天不太明白,你想问的具体问题是什么?
在我的算法中45度坐标转换中有如下几个方法
1、屏幕坐标转stage方式二维数组坐标
已知某屏幕坐标求stage 方式二维数组的下标
2、屏幕坐标转iso方式 二维数组坐标
已知某屏幕坐标求iso 方式二维数组的下标(iso数组二维下标有负数)
3、屏幕坐标转iso坐标
已知某屏幕坐标求iso坐标(iso坐标值有负数)
4、stage二维数组坐标转iso二维数组坐标
已知stage数组中某个下标求对应的iso数组中的坐标
5、45度数组坐标转90度数组坐标
同上,反转
注意事项:
1、整个算法中屏幕坐标系和iso坐标系的原点重合,位置在左上角0,0点。
2、Tile的坐标原点在小菱形的左顶点。
谢谢浪子的回答!
不过我还是不明白!
最不明白的是。我通过一个排列方式排列!
比如:
stage.x = logic.x * TileWidth + ( logic.y & 1) * ( TileWidth / 2 );
stage.y = logic.y * TileHeigth / 2;
logic表示 数组索引如(0,0);
那么反过来我点击舞台时 把舞台坐标转换成二维数组索引不就好了!
我的问题是 转过来 老有错。。。。。。
不明白你为什么 还有个iso数组 用来做啥的?
首先感谢两位前辈在研究完之后放出原代码。
让我们这些后来者能够循着前人的脚步快速进步。
最终结论:
浪子的 我不太理解........... 貌似是在两套坐标系中转来转去............我晕!太高深了!
小超的那个,经过一番查证得出个结论:
TMD 少一行代码 害死人啊!
下面贴出 Staggered 坐标转换正确代码
/** * 根据屏幕象素坐标取得网格的坐标 * */ public static function StageToLogic(px:int, py:int):Point { var xtile:int = 0; //网格的x坐标 var ytile:int = 0; //网格的y坐标 var cx:int, cy:int, rx:int, ry:int; cx = int(px / TileWidth) * TileWidth + TileWidth/2; //计算出当前X所在的以tileWidth为宽的矩形的中心的X坐标 cy = int(py / TileHeight) * TileHeight + TileHeight/2;//计算出当前Y所在的以tileHeight为高的矩形的中心的Y坐标 rx = (px - cx) * TileHeight/2; ry = (py - cy) * TileWidth/2; if (Math.abs(rx)+Math.abs(ry) <= TileWidth * TileHeight/4) { //xtile = int(pixelPoint.x / tileWidth) * 2; xtile = int(px / TileWidth); ytile = int(py / TileHeight) * 2; } else { px = px - TileWidth/2; //xtile = int(pixelPoint.x / tileWidth) * 2 + 1; xtile = int(px / TileWidth) + 1; py = py - TileHeight/2; ytile = int(py / TileHeight) * 2 + 1; } return new Point(xtile - (ytile&1), ytile); } /** * 根据网格坐标取得象素坐标 * */ public static function LogicToStage(tx:int, ty:int):Point { /** * 偶数行tile中心 * */ var tileCenter:int = (tx * TileWidth) + TileWidth/2; /** * x象素 如果为奇数行加半个宽 * */ var xPixel:int = tileCenter + (ty&1) * TileWidth/2; /** * y象素 * */ var yPixel:int = (ty + 1) * TileHeight/2; return new Point(xPixel, yPixel); }
这里还有一个
http://bbs.9ria.com/thread-39884-1-1.html
再说一下我的做法,就是切成矩形栅格,然偶看点落在哪个矩形里,再看点落在矩形中的哪个三角形中,最后根据三角形类型(是菱形的哪部分),以及当前矩形的行列值,就可以算出来了
看了半天不太明白,你想问的具体问题是什么?
在我的算法中45度坐标转换中有如下几个方法
1、屏幕坐标转stage方式二维数组坐标
已知某屏幕坐标求stage 方式二维数组的下标
2、屏幕坐标转iso方式 二维数组坐标
已知某屏幕坐标求iso 方式二维数组的下标(iso数组二维下标有负数)
3、屏幕坐标转iso坐标
已知某屏幕坐标求iso坐标(iso坐标值有负数)
4、stage二维数组坐标转iso二维数组坐标
已知stage数组中某个下标求对应的iso数组中的坐标
5、45度数组坐标转90度数组坐标
同上,反转
注意事项:
1、整个算法中屏幕坐标系和iso坐标系的原点重合,位置在左上角0,0点。
2、Tile的坐标原点在小菱形的左顶点。
谢谢浪子的回答!
不过我还是不明白!
最不明白的是。我通过一个排列方式排列!
比如:
stage.x = logic.x * TileWidth + ( logic.y & 1) * ( TileWidth / 2 );
stage.y = logic.y * TileHeigth / 2;
logic表示 数组索引如(0,0);
那么反过来我点击舞台时 把舞台坐标转换成二维数组索引不就好了!
我的问题是 转过来 老有错。。。。。。
不明白你为什么 还有个iso数组 用来做啥的?
发表评论
-
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2393实现这效果其实比较简单,主要是思路~! package ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解 -
[原创]围绕任意一个中心点旋转
2011-10-23 13:46 0package guwanyuan.qicool.game.c ... -
珍宝探索 AS3-过关类小游戏
2011-10-13 02:15 0珍宝探索 AS3-过关类小游戏 -
(RepeaterOverTimeLine能将一个for循环执行的工作类似异步地平摊到多个帧上)RepeaterOverTimeLine
2011-09-30 02:26 0(RepeaterOverTimeLine能将一个for循环执 ... -
box2dttest(台球demo,使用了box2d)
2011-09-21 01:49 0box2dttest(台球demo,使用了box2d) -
贪吃蛇游戏
2011-09-16 02:40 0package com { /** ... -
打豆豆
2011-09-08 00:34 0打豆豆打豆豆 -
经典代码-空战.zip (513.2 KB)
2011-09-02 02:24 0经典代码-空战.zip (513.2 KB) -
基于TextField的图文混编的组件
2011-09-01 23:04 0基于TextField的图文混编的组件 -
泡泡龙
2011-08-29 22:36 0泡泡龙泡泡龙泡泡龙 -
井字棋算法
2011-08-18 15:04 0井字棋算法井字棋算法 -
_超级玛丽游戏_flash_game_demo
2011-08-18 00:01 0_超级玛丽游戏_flash_game_demo.zip -
吴万江-TD_demo
2011-08-15 15:35 0吴万江-TD_demo -
S_eVent系列教程
2011-08-13 05:01 0S_eVent系列教程S_eVent系列教程 -
[转][翻译]LoaderMax使用指导(一)
2011-08-10 19:51 1862http://hi.baidu.com/mr_ziqiang/ ...
相关推荐
万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的算法.htm万年历的...
万年历算法全集.pdf万年历算法全集.pdf万年历算法全集.pdf万年历算法全集.pdf
C语言项目——超级万年历.zip C语言项目——超级万年历.zip C语言项目——超级万年历.zip C语言项目——超级万年历.zip C语言项目——超级万年历.zip C语言项目——超级万年历.zip C语言项目——超级万年历.zip ...
万年历算法全集.txt 万年历算法全集.txt万年历算法全集.txt
万年历星期的算法,c编写,稍加修改就可以 应用于单片机。
万年历算法
万年历星期的算法(C语言)
万年历算法 阳历算法 阴历算法 确定阳历日和阴历日的对应关系的算法
微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小...
万年历算法及源码.doc
万年历算法 万年历的各种算法 附单片机C语言程序
易语言源码易语言天文算法万年历源码.rar
万年历的完整算法 ARM 万年历程序
单片机的万年历星期的算法,(C51语言)
万年历 阴历阳历之间转换 很好万年历 无需安装
农历核心算法类库(含源码),源自许剑伟先生的寿星万年历(v4.11),由 Javascript 源码改写为 C# 源码,在 Visual Studio 2008 中测试通过。强烈推荐您下载一份寿星万年历的源码进行对照参考。 真正的“万年”历,...
这是用C语言编写的万年历算法,是当时的一个课程设计,做的应该没错误了
万年历---java算法实现.docx
效验算法 数学问题 数据结构 数组 文件程序 求进制 汉诺塔 硬币情况 逆阵 链串.c 链栈.c 链队列.c 问题算法 顺序栈.c 顺序表.c 顺序队列.c ./其它: c语言窗体实例.zip 傻瓜递归.c 冒泡法改进.c 小字库DIY-.c 小...
万年历的算法 c语言