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

Project1

 找回密码
 注册会员
搜索

关于冰上滑行的问题

查看数: 1697 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2010-6-25 18:35

正文摘要:

本帖最后由 听海 于 2010-6-26 12:44 编辑 如果在陷阱后面有空地的话,角色就会直接穿过陷阱到空地。 如果陷阱后面没空地,陷阱就有用。 我怎么也找不出问题, 求解。 ...

回复

无心孤云 发表于 2010-6-26 19:55:45
啊。我对四楼的签名上的背景上的大地图很有兴趣。不知道能否共享下。。。
IamI 发表于 2010-6-26 07:33:27
-_-b 是我很久以前写的那个么……那个算法挺老的了。还有些别的乱七八糟的问题……不打算自己重写的话按lss删掉passable即可

点评

嗯,是的。这就是IamI你很久以前给我的。 话说,如果有新的更好的算法,我也想要。  发表于 2010-6-26 12:41
姬文翔 发表于 2010-6-26 01:18:52
我估计是地形标识有关。但是具体怎么解决我还真没办法。。。
xcyog 发表于 2010-6-26 00:03

我把他工程里的地形标识都改为0就可以了

点评

那就没有“滑行”的意义了。  发表于 2010-6-26 01:19
burst_TNT 发表于 2010-6-26 01:12:29
本帖最后由 burst_TNT 于 2010-6-26 01:24 编辑

请把你的脚本“冰面滑行”按照如下红字部分修改(或者你嫌麻烦直接复制下面的脚本替换你的“冰面滑行”也行……建议你自己修改一次,会比较清楚改的是什么地方,如果有新BUG也好进一步修改)
class Game_Character
  def move_down(turn_enabled = true)
    # 面向下
    if turn_enabled
      turn_down
    end   
    # 有事件的情况
    if check_event(@x, @y)   
      p "ture"
    # 可以通行的场合
    elsif passable?(@x, @y, 2)  
      # 面向下
      turn_down
      # 更新坐标
      @y += 1
      # 增加步数
      increase_steps
      if $game_map.terrain_tag(@x,@y) == 2      
        move_down(turn_enabled)
      #注释掉这行elsif passable?(@x, @y +1, 2)
        #注释掉这行@y +=1
      end
    # 不能通行的情况下
#    else
      # 接触事件的启动判定
#      check_event_trigger_touch(@x, @y + 1)
    end
  end
  def move_left(turn_enabled = true)
    # 面向左
    if turn_enabled
      turn_left
    end
    # 有事件的情况
    if check_event(@x, @y)
    # 可以通行的情况下
    elsif passable?(@x, @y, 4)
      # 面向左
      turn_left
      # 更新坐标
      @x -= 1
      # 增加步数
      increase_steps
      if $game_map.terrain_tag(@x,@y) == 2
        move_left(turn_enabled)
      #注释掉这行elsif passable?(@x -1, @y, 4)
        #注释掉这行@x -= 1
      end
    # 不能通行的情况下
#    else
      # 接触事件的启动判定
#      check_event_trigger_touch(@x -1, @y)
    end
  end
  def move_right(turn_enabled = true)
    # 面向右
    if turn_enabled
      turn_right
    end
    # 有事件的情况
    if check_event(@x, @y)
    # 可以通行的场合
    elsif passable?(@x, @y, 6)
      # 面向右
      turn_right
      # 更新坐标
      @x += 1
      # 增加步数
      increase_steps
      if $game_map.terrain_tag(@x,@y) == 2
        move_right(turn_enabled)
      #注释掉这行elsif passable?(@x + 1, @y, 4)
        #注释掉这行@x += 1
      end
    # 不能通行的情况下
#    else
      # 接触事件的启动判定
#      check_event_trigger_touch(@x + 1, @y)
    end
  end
  def move_up(turn_enabled = true)
    # 面向上
    if turn_enabled
      turn_up
    end
    # 有事件的情况
    if check_event(@x, @y)
    # 可以通行的情况下
    elsif passable?(@x, @y, 8)
      # 面向上
      turn_up
      # 更新坐标
      @y -= 1
      # 歩数増加
      increase_steps
      if $game_map.terrain_tag(@x,@y) == 2
        move_up(turn_enabled)
      #注释掉这行elsif passable?(@x, @y - 1, 8)
        #注释掉这行@y -= 1
      end
    # 不能通行的情况下
#    else
      # 接触事件的启动判定
#      check_event_trigger_touch(@x, @y -1)
    end
  end
end

评分

参与人数 1星屑 +6 收起 理由
听海 + 6 这样一改果然好了。

查看全部评分

无心孤云 发表于 2010-6-26 00:03:48
我估计是地形标识有关。但是具体怎么解决我还真没办法。。。
听海 发表于 2010-6-25 23:54:19
提示: 作者被禁止或删除 内容自动屏蔽
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-30 08:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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