赞 | 12 |
VIP | 107 |
好人卡 | 6 |
积分 | 4 |
经验 | 31122 |
最后登录 | 2024-6-29 |
在线时间 | 1606 小时 |
Lv2.观梦者 傻♂逼
- 梦石
- 0
- 星屑
- 374
- 在线时间
- 1606 小时
- 注册时间
- 2007-3-13
- 帖子
- 6562
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 yangff 于 2012-2-6 14:26 编辑
这里说的是A1 与 A2 组元件。不考虑地图边界。这块内容与XP基本相同。A1 组比A2不过是多了动画
首先我们对元件进行标号分割成16*16的小单元
1 | 1 | 2 | 3 | 1 | 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 在编辑器中画出各种转交
然后讨论设BASE[x,y]=地图在x,y的元件ID(编号前),按照32*32作为单位大小
首先按照
[16 15]
[12 11]
填充。此次填充优先级最低。填充的是中心区域
然后考虑特殊情况
第一层 优先级
当 BASE[x,y]!=BASE[x,y+1]时候 A
填充
[x x]
[20 19]
当 BASE[x,y]!=BASE[x,y-1]时候 B
填充
[8 7]
[x x]
以上填充的是上下边界
当 BASE[x,y]!=BASE[x-1,y]时候 C
填充
[14 x]
[10 x]
当 BASE[x,y]!=BASE[x+1,y]时候 D
填充
[x 17]
[x 13]
以上填充左右边界
以上是第二层优先级,若有冲突,则必为转交按照下面的填充
当 BASE[x,y]!=BASE[x-1,y] && BASE[x,y]!=BASE[x,y-1]时候 E
填充
[6 x]
[x x]
左上转交
当 BASE[x,y]!=BASE[x,y+1] && BASE[x,y]!=BASE[x+1,y]时候 F
填充
[x x]
[x 21]
右下转交
当 BASE[X,Y]!=BASE[X-1,Y] != BASE[X,Y+1]时候 G
填充
[X X]
[18 X]
左下转交
当 BASE[X,Y]!=BASE[X+1,Y] != BASE[X,Y-1]时候 H
填充
[X 9]
[X X]
左下转交
以上填充四个凸转交
对于地图边缘需特别处理(小路效果,下次再说= =)
最后填充内部的凹转交,优先级最高。
当 BASE[X,Y]==BASE[X+1,Y] && BASE[X,Y]==BASE[X,Y+1] && BASE[X,Y]!=BASE[X
+1,Y+1]
填充
[x x]
[x 5]
右下凹
当 BASE[X,Y]==BASE[X+1,Y]==BASE[X,Y-1] && BASE[X,Y]!=BASE[X+1,Y-1]
填充
[x 3]
[x x]
右上凹
当 BASE[X,Y]==BASE[X-1,Y]==BASE[X,Y-1] && BASE[X,Y]!=BASE[X-1,Y-1]
填充
[2 x]
[x x]
左上凹
当 BASE[X,Y]==BASE[X-1,Y]==BASE[X,Y+1] && BASE[X,Y]!=BASE[X-1,Y+1]
填充
[x x]
[2 x]
左下凹
传送门,分析2:http://rpg.blue/thread-222035-1-1.html |
|