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

Project1

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

怎样使地形标志为1时,乘车不可通过?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
11
发表于 2009-5-3 22:55:14 | 只看该作者
以下引用水镜风生于2009-5-3 14:47:42的发言:
不用管有多少个障碍,因为按照这种制作方法,障碍是会随着主角移动的,主角移到哪里,障碍就跟着移动到那里……

这样也可以....
但是如果换了地图,障碍物就跟不上主角了.
一个地图事件不能在多个地图通用..

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
422
在线时间
904 小时
注册时间
2007-7-9
帖子
1403
12
 楼主| 发表于 2009-5-3 23:17:36 | 只看该作者
判断主角前方1格地形标志是否为1

怎么判断…………{/gg}

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
13
发表于 2009-5-3 23:27:24 | 只看该作者
做好了,楼主打开这个下载地址:
ftp://[email protected]/others/Project1.rar
跟黑衣人对话后,就可以进入赛车模式.
赛车模式中,如果玩家试图离开跑到,那个木桩堵住路口.
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
422
在线时间
904 小时
注册时间
2007-7-9
帖子
1403
14
 楼主| 发表于 2009-5-3 23:45:18 | 只看该作者
谢谢你了!

而且,我想到一个最好的办法………………最简单

事件页1障碍物事件不可以通行,事件页2条件是“开关1为ON”,把允许通行打上勾………………{/gg}{/gg}

我怎么早没想到!光想地形标志了…………

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
83 小时
注册时间
2006-4-4
帖子
1019
15
发表于 2009-5-4 00:30:14 | 只看该作者
以下引用牛肉面于2009-5-3 15:45:18的发言:

谢谢你了!

而且,我想到一个最好的办法………………最简单

事件页1障碍物事件不可以通行,事件页2条件是“开关1为ON”,把允许通行打上勾………………

我怎么早没想到!光想地形标志了…………

那个方法最常用..........................
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
16
发表于 2009-5-4 00:31:48 | 只看该作者
以下引用牛肉面于2009-5-3 15:45:18的发言:

谢谢你了!

而且,我想到一个最好的办法………………最简单

事件页1障碍物事件不可以通行,事件页2条件是“开关1为ON”,把允许通行打上勾………………

我怎么早没想到!光想地形标志了…………

这样的话,如果区域很大,会很卡,不过这样最简单了
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
83 小时
注册时间
2006-4-4
帖子
1019
17
发表于 2009-5-4 01:20:09 | 只看该作者
以下引用水镜风生于2009-5-3 14:35:28的发言:

想到个比较囧的方法:

首先弄个样子跟地面相同的事件A,不允许穿透。

【并行处理】事件——将主角XY坐标及方向代入变量——判断主角是否在车上——判断主角前方1格地形标志是否为1——若是,则将事件A移到主角前方1格——若否,将事件移动不妨碍通行的偏僻地方……

相当麻烦,觉得不好的话请无视……


[本贴由作者于 2009-5-3 14:37:27 最后编辑]

这个方法囧但也不是不可行...
我就想过用这个做个事件的船..不过没实践....
并行事件每个地图放一个,挡路事件也每个地图放一个...比上面那方法节约事件容量(特别是大地图)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

18
发表于 2009-5-4 01:48:16 | 只看该作者
轻碰LZ提醒:没有图像的事件即使勾选『不能通行』也可以通行……
如按地形标志,请插入以下脚本
class Game_Map
#--------------------------------------------------------------------------
  # ● 可以通行判定
  #     x          : X 坐标
  #     y          : Y 坐标
  #     d          : 方向 (0,2,4,6,8,10)
  #                  ※ 0,10 = 全方向不能通行的情况的判定 (跳跃等)
  #     self_event : 自己 (判定事件可以通行的情况下)
  #--------------------------------------------------------------------------
  def passable?(x, y, d, self_event = nil)
    # 被给予的坐标地图外的情况下
    unless valid?(x, y)
      # 不能通行
      return false
    end
    # 方向 (0,2,4,6,8,10) 与障碍物接触 (0,1,2,4,8,0) 后变换
    bit = (1 << (d / 2 - 1)) & 0x0f
    # 循环全部的事件
    for event in events.values
      # 自己以外的元件与坐标相同的情况
      if event.tile_id >= 0 and event != self_event and
         event.x == x and event.y == y and not event.through
        # 如果障碍物的接触被设置的情况下
        if @passages[event.tile_id] & bit != 0
          # 不能通行
          return false
        # 如果全方向的障碍物的接触被设置的情况下
        elsif @passages[event.tile_id] & 0x0f == 0x0f
          # 不能通行
          return false
        # 这以外的优先度为 0 的情况下
        elsif @priorities[event.tile_id] == 0
          # 可以通行
          return true
        end
      end
    end
    # 从层按从上到下的顺序调查循环
    for i in [2, 1, 0]
      # 取得元件 ID
      tile_id = data[x, y, i]
      # 取得元件 ID 失败
      if tile_id == nil
        # 不能通行
        return false
      elsif ($game_switches[12] == true and @terrain_tags[tile_id]) == 1
        return false

      # 如果障碍物的接触被设置的情况下
      elsif @passages[tile_id] & bit != 0
        # 不能通行
        return false
      # 如果全方向的障碍物的接触被设置的情况下
      elsif @passages[tile_id] & 0x0f == 0x0f
        # 不能通行
        return false
      # 这以外的优先度为 0 的情况下
      elsif @priorities[tile_id] == 0
        # 可以通行
        return true
      end
    end
    # 可以通行
    return true
  end
end
启动开关为12号,红色为修改部分
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

19
发表于 2009-5-4 01:51:19 | 只看该作者
我记得有个地形标志限制移动的脚本……
回复 支持 反对

使用道具 举报

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
422
在线时间
904 小时
注册时间
2007-7-9
帖子
1403
20
 楼主| 发表于 2009-5-4 04:44:15 | 只看该作者
谢谢大家!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 20:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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