游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8543|回复: 10

游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

[复制链接]

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-6-20 01:57:00 | 显示全部楼层 |阅读模式

使用纯菱形的tile(不希望使用矩形的斜视图的tile),制作出矩形的地图,而不是一个大菱形。如图(附件)所示


问题:

看了一些相关的斜45度角的文章,还是没有找到解决,希望高手多多帮忙。先谢过了。


大菱形地图的坐标 是以右下方向为x轴方向,以左下方向为y轴方向,那么将这个大菱形的黑色区域添充上tile以后,
这个地图数据结构应该是什么样子?? [em24]
sf_200762015724.gif

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-6-20 10:26:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

自己顶一下,怎么没人来呀??

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-6-20 11:43:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

自己建的话,当然什么格式怎么排列都可以。

如果要利于路径查询的话,就真的是当一个大菱形来建表格。

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-6-20 12:41:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

谢谢楼上的回答,

就是这个问题,

大菱形地图 利于路径查询,但是只显示菱形中的内接矩形的话,就有将近一倍的坐标空间被浪费。
矩形地图,坐标空间倒是省了,可是路径查询和坐标转换如何做??

希望能够得到一个解决方案实现矩形地图:既省空间,又方便坐标操作

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-6-20 13:00:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

不会有坐标空间被浪费!

如果最上方菱形编号(0,0),最右边菱形编号(w,0);以这种顺序排列

(n+1,m)相对(n,m)的显示坐标总是下移半个菱形块高度,右移半个菱形块宽度。

(n,m+1)相对(n,m)的显示坐标总是下移半个菱形块高度,左移半个菱形块宽度。

以次类推将即可。

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-6-20 13:36:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

谢谢 hyzboy,

你的意思是以水平方向为x轴,垂直方向为y轴,那么如何进行坐标变换(格点-->屏幕坐标 & 屏幕坐标-->格点)?

/*我看过的坐标变换教程一般都 是以右下方向为x轴方向,以左下方向为y轴方向*/

7

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-6-20 19:37:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

如果是实现第二图,建议不要铺成菱形,感觉有点浪费,铺成之字形,然后把锯齿边切除。
这样寻路的时候要对奇数行和偶数行分开判断。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-6-20 21:14:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

我5楼的说明不写了格子向屏幕坐标转换的办法了吗!

至于屏幕坐标转格子坐标其实也很方便:

方法1.比较好理解,直接用2D旋转公式转到正的方向再算
方法2.把宽度除2,就成正菱形了。这样就好算了。

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-6-20 21:39:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

谢谢 hyzboy,

我的意思是:对于一个小的菱形tile,(假设他的格子坐标为 (8,8),宽*高 为 32*16),
现在假设我的鼠标的屏幕坐标是(123,126),我如何判断鼠标是否落在这个小菱形Tile中(而不是判断鼠标是否落在Tile的外接矩形中),为了效率,希望只使用加减乘除四则运算,而不用三角函数。

(也就是:如何将 屏幕坐标-->格点坐标)

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-6-20 21:56:00 | 显示全部楼层

Re:游戏编程初学者求教:关于2D RPG 斜45度角地图的问题

OK,搞定了。

非常感谢hyzboy和xz1983两位。

结贴
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 14:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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