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

Project1

 找回密码
 注册会员
搜索
楼主: RyanBern
打印 上一主题 下一主题

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

[复制链接]

Lv5.捕梦者 (版主)

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

开拓者

1
发表于 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 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 21:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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