赞 | 7 |
VIP | 866 |
好人卡 | 185 |
积分 | 32 |
经验 | 130059 |
最后登录 | 2024-10-29 |
在线时间 | 3618 小时 |
Lv3.寻梦者 双子人
- 梦石
- 0
- 星屑
- 3185
- 在线时间
- 3618 小时
- 注册时间
- 2009-4-4
- 帖子
- 4154
|
本帖最后由 hys111111 于 2012-7-4 20:56 编辑
自动元件按这样算,第一个空白的为0-47
第二个是真正的自动元件,为48-95,第三个是96-143以此类推。
然后将48-95的那个拆开来看(双击),如图所示,就是按照48、49、50这样以此类推。
此时,你可以判断,当上面有个48号元件时,上、下、左、右可以放什么东西。
因为让角色画地图,自然就会使自动元件变化。先让它全放48的图块,然后判断48图块旁边有什么东西($game_map.data[x,y图层]),然后就可以return 49什么的
@Wind2010
我写了一段脚本,不知道您是否能看懂?首先你先把48号全部代替48-95的图块。
它是判断八方向是否有48号图块,然后自动分类。
后面自行添加(@choose1什么的)然后判断这些8个数组都含有什么共同的数,然后直接$game_map.data[x,y,图层]=编号
这样应该可以了。- @tile_id = []
- @tile_id = [
- 48,49,50,51,52,53,54,55,#0-7
- 56,57,58,59,60,61,62,63,#8-15
- 64,65,66,67,68,69,70,71,#16-23
- 72,73,74,75,76,77,78,79,#24-31
- 80,81,82,83,84,85,86,87,#32-39
- 88,89,90,91,92,93,94,95]#40-47
-
- @choose1 = []
- @choose2 = []
- @choose3 = []
- @choose4 = []
- @choose6 = []
- @choose7 = []
- @choose8 = []
- @choose9 = []
-
- for x in -1...$game_map.width+2
- $game_map.data[x,-1,0]=@tile_id[0]
- $game_map.data[x,$game_map.height,0]=@tile_id[0]
- end
-
- for y in -1...$game_map.height+2
- $game_map.data[-1,y,0]=@tile_id[0]
- $game_map.data[$game_map.width,y,0]=@tile_id[0]
- end
-
- for x in 0...$game_map.width
- for y in 0...$game_map.height
-
- if $game_map.data[x,y,0]==@tile_id[0]
- if $game_map.data[x-1,y+1]!=@tile_id[0]
- @choose1 = []#左下
- end
- if $game_map.data[x,y+1]!=@tile_id[0]
- @choose2 = []#下
- end
- if $game_map.data[x+1,y+1]!=@tile_id[0]
- @choose3 = []#右下
- end
- if $game_map.data[x-1,y]!=@tile_id[0]
- @choose4 = []#左
- end
- if $game_map.data[x+1,y]!=@tile_id[0]
- @choose6 = []#右
- end
- if $game_map.data[x-1,y-1]!=@tile_id[0]
- @choose7 = []#左上
- end
- if $game_map.data[x,y-1]!=@tile_id[0]
- @choose8 = []#上
- end
- if $game_map.data[x+1,y-1]!=@tile_id[0]
- @choose9 = []#右上
- end
-
- end
- end
- end
复制代码 |
|