游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1614|回复: 2

关于斜角地图拼接算法

[复制链接]

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2005-8-16 22:14:00 | 显示全部楼层 |阅读模式
前辈们不好意思又麻烦了
对于Staggered Tile 算法有点不清楚的地方 希望能在百忙之中为不才解释一二
***********************************************
网上资源 :
void CalculateMapTilePos(int n_map_pos_x,
     int n_map_pos_y,
     int & n_scrn_pos_x,
     int & n_scrn_pos_y)
{
   n_scrn_pos_x = n_map_pos_x * iso_tile_size_x
     + (n_map_pos_y & 1) * (iso_tile_size_x / 2);
   n_scrn_pos_y = (n_map_pos_y) * iso_tile_size_y / 2;
}

在这个公式中,n_map_pos_x是地图纵横的横向座标,n_map_pos_y是地图纵横的纵向座标,n_scrn_pos_x和n_scrn_pos_y是地图元素在屏幕上的纵横座标。
***********************************************

问题一) 请问(n_map_pos_y & 1)这一段的作用为何 自己谨知道这地图的方法该为左向右
由高往下绘出
可为什么x插入位置还要考虑Y-Coordinates ?
难道于在双数行X会偏移半个Tile Width 有关 ?
& << 不好意思问一下这符号不是取位符吗 ?

问题二) 这段代码看起来并没有重覆呼叫也无递归 请问怎样实现地图拼接呢 ?
问题三 ) 请问Diamond 拼接法是否由其演变而出 不知道前辈们可不可以不吝分享这公用的算法呢 ??

以上
感谢 ^^

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2005-8-17 12:59:00 | 显示全部楼层

Re:关于斜角地图拼接算法

1. a&1与a%2一样用来判奇偶。斜45的地图x方向奇偶行的开始位置就是差半个tile width
2. 这个是计算一个地图坐标映射到屏幕坐标的函数。一次算1个,所以没有循环和递归。
3. 不懂- -

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2005-8-17 14:27:00 | 显示全部楼层

Re: 关于斜角地图拼接算法

谢谢前辈的回答 ^^
悲哀中 ~ 看来自己的语言基础还扎不稳啊
看了解答 似乎有点明白了Diamond Tile 是怎样形成了
应该是用一个双回圈再丢给画家画吧 ~~ ^^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 11:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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