设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: RyanBern
打印 上一主题 下一主题

[原创发布] 【教程】绘制地图上的桥

[复制链接]

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

11
发表于 2017-3-23 23:27:10 | 只看该作者
本帖最后由 guoxiaomi 于 2017-3-23 23:40 编辑

怒挖一记坟~

一晃三年已过,不知RB叔有没有想到这个方案呢?

有一个只用事件就能解决的方案。修改的是$game_map.data,所以也不受存档影响。

需要预先处理一下原来的Tileset。主楼中用到的是“山道”地图,在PS里把此地图纵向复制一次。这样就有 2 组一模一样的图块。

原来的图块不管,在下面的复制组里设置优先级,不需要设置通行度。如图:


然后在上桥处设置事件,触发条件是与事件接触
RUBY 代码复制
  1. data = $game_map.data
  2. ary1 = [553,561,569,579,580,581,556,564]
  3. ary2 = ary1.collect{|x| x + 224}
  4. for x in 0..$game_map.width
  5. for y in 0..$game_map.height
  6. for z in 0..2
  7. if ary2.include? data[x,y,z]
  8.   data[x,y,z] -= 224
  9. end;end;end;end

下桥处设置事件,触发条件是与事件接触
RUBY 代码复制
  1. data = $game_map.data
  2. ary1 = [553,561,569,579,580,581,556,564]
  3. ary2 = ary1.collect{|x| x + 224}
  4. for x in 0..$game_map.width
  5. for y in 0..$game_map.height
  6. for z in 0..2
  7. if ary1.include? data[x,y,z]
  8.   data[x,y,z] += 224
  9. end;end;end;end


所以这里应该很容易就看出来了,当下桥的时候,原来的地图图块已经被更换为复制组,复制组的图块设为高的优先级(☆5)和穿透,所以看上去是角色“在桥下面行走”。上桥的时候再换回原来的图块即可。

具体为什么是这些数字,图块元件的ID是384+元件在Tileset图中的位置,自动元件是不算在内的。这个从上到下数一下就可以了,或者下面的脚本,x,y是坐标,z=0-2是图层。
RUBY 代码复制
  1. p $game_map.data[x,y,z]

这段脚本可以进行优化,比如for循环里只写桥所在的范围,但是RGSS不是很care这点运算量。
复制的时候也不一定要复制整个Tileset,只复制桥的那部分就行~但是整个一起复制快得多……
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

12
 楼主| 发表于 2017-3-25 09:52:14 | 只看该作者
guoxiaomi 发表于 2017-3-23 23:27
怒挖一记坟~

一晃三年已过,不知RB叔有没有想到这个方案呢?

以前没想过,如果是现在可能会想到吧?因为强改地图图快这个做法其实是很特殊的,一般如果改动不大完全就可以通过铺一个事件来完成了。

不过两种做法的想法是一样的,在操作上可能略有区别
如果是我提出的方案,那么需要准备另外一组图快,可能操作上比较方便无脑一些。
如果是改图块的方式,那么两个形态的图块的位置就要对应好,这本身操作上难度要大一些。

然后我现在怀疑是不是不需要考虑存档,因为存档的时候是直接读取 $game_map,所以改动的属性会存下来,直到切换地图才会重置。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-29 19:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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