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

Project1

 找回密码
 注册会员
搜索

[已解决]上下船,陆地和海洋通行度切换如何解决?

查看数: 2807 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-9-1 16:07

正文摘要:

本帖最后由 miantouchi 于 2019-9-2 18:13 编辑 我把海洋正常是设置不可通行的状态, 角色在陆地时,陆地可以通行,海洋不可通行。 角色上船后,   就只可以在海洋图块可以通行。 我的做法是,角色坐 ...

回复

灯笼菜刀王 发表于 2019-9-2 11:57:23
本帖最后由 灯笼菜刀王 于 2019-9-2 11:59 编辑

那就用你前面的方法呗, 用地形标志, 满足条件后放行  或者用元件ID判断

# 从层按从上到下的顺序调查循环
    for i in [2, 1, 0]
      # 取得元件 ID
      tile_id = data[x, y, i]
      # 取得元件 ID 失败
      if tile_id == nil
        # 不能通行
        return false
      elsif [10086,10087,10088].include?(tile_id)  and $game_switches[10086]
          return true

      # 如果障碍物的接触被设置的情况下
      elsif @passages[tile_id] & bit != 0
        # 不能通行
        return false

点评

菜刀大大如果看到..上一下Q..有事请教  发表于 2019-9-14 20:27
好用,果然厉害,打了一下午尽然,自己把括号打错了,-_-||。  发表于 2019-9-2 18:13

评分

参与人数 1+1 收起 理由
miantouchi + 1 认可答案

查看全部评分

灯笼菜刀王 发表于 2019-9-1 19:49:27
本帖最后由 灯笼菜刀王 于 2019-9-1 19:51 编辑

既然如此, 那就直接搞两套通行度,  在数据库把图块设置复制一份, 通行度设置成不一样的, 然后, 到game map 里加一句

def 通行替换(n)
   @passages = $data_tilesets[n].passages
end

然后,上船的时候  $game_map.通行替换(10086),
下船的时候,  $game_map.通行替换(10087), 搞定收工,还省了个穿透呢

点评

完美解决了,遇敌不会影响吧。  发表于 2019-9-1 21:16
属实有点变态了,移花接木,那我这么干了,我的这个图块是256*2048,一张陆地通行度,一张水中通行度,看样还可以一张空中通行度。  发表于 2019-9-1 21:16

评分

参与人数 2星屑 +100 +2 收起 理由
RyanBern + 100 + 1 认可答案
miantouchi + 1 认可答案

查看全部评分

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

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

GMT+8, 2025-4-12 05:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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