幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3506|回复: 15

[RM2K&2K3] 怎么判断主角接触的是地图元件还是事件?

[复制链接]

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
发表于 2009-11-8 18:28:40 | 显示全部楼层 |阅读模式
在脚本中怎么判断主角接触的是地图元件还是事件?
如下脚本:
在class Game_Player中的
  #--------------------------------------------------------------------------
  # ● 接触事件启动判定
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    result = false
    # 事件执行中的情况下
    if $game_system.map_interpreter.running?
      return result
    end
    # 全事件的循环
    for event in $game_map.events.values
      # 事件坐标与目标一致的情况下
      if event.x == x and event.y == y
        # 跳跃中以外的情况下、启动判定是正面的事件
        if not event.jumping? and not event.over_trigger? and [1,2].include?(event.trigger)
          event.start
          result = true
        end
      else
    Audio.se_play("Audio/SE/撞墙音乐",100,100)  if xxxxx   
   end   
    end
    return result
  end
我做的效果是:主角撞到墙会发出SE!撞到 “人 或 其他事件”却不会,可是怎么判断呢?
红色部分应该怎么写?
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-11-8 18:56:33 | 显示全部楼层
开张了开张了!终于有人问问题了

if event.tile_id > 0
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
 楼主| 发表于 2009-11-8 21:30:50 | 显示全部楼层
回复楼上!不对啊....麻烦在看下!或者帮忙试试呗   
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-11-8 21:35:22 | 显示全部楼层
if event.x == x and event.y == y
        # 跳跃中以外的情况下、启动判定是正面的事件
        if not event.jumping? and not event.over_trigger? and [1,2].include?(event.trigger)

默认的脚本可不是你这样写的啊。。。。

报告LZ我试验过的。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
 楼主| 发表于 2009-11-8 21:45:58 | 显示全部楼层
我又改过来了啊 可是还是不行啊,趁你现在在线帮忙看看!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
 楼主| 发表于 2009-11-8 21:53:22 | 显示全部楼层
#--------------------------------------------------------------------------
  # ● 接触事件启动判定
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    result = false
    # 事件执行中的情况下
    if $game_system.map_interpreter.running?
      return result
    end
    # 全事件的循环
    for event in $game_map.events.values
      # 事件坐标与目标一致的情况下
      if event.x == x and event.y == y and [1,2].include?(event.trigger)
        # 跳跃中以外的情况下、启动判定是正面的事件
        if not event.jumping? and not event.over_trigger?
          event.start
          result = true
        end
        else
      Audio.se_play("Audio/SE/撞墙音乐",100,100) if event.tile_id != 0
      end
    end
    return result
  end
我又建了个默认工程,这样没错吧! 可是还是不行...
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-11-8 21:54:05 | 显示全部楼层
那什么,你的墙不是事件做的吧?
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
 楼主| 发表于 2009-11-8 22:01:00 | 显示全部楼层
绝对不是!!!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

104

积分

③业余

积分
104
QQ
 楼主| 发表于 2009-11-8 22:03:35 | 显示全部楼层
要不是我不知道怎么在这个论坛怎么回复图片 我就把工程传上来你看看了.....
P:貌似笨了点!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-11-8 22:12:52 | 显示全部楼层
你那个脚本严重误导人啊。。。那个是事件的判断和撞墙一点关系都没有。。。。。

我给你重新做了

Ctrl+Alt+F  全局搜索 dir4

找到


      case Input.dir4
      when 2        move_down
      when 4        move_left
      when 6        move_right
      when 8        move_up
      end

加他改成这样


      case Input.dir4
      when 2
        x = @x
        y = @y + 1
        move_down
      when 4
        x = @x - 1
        y = @y
        move_left
      when 6
        x = @x + 1
        y = @y
        move_right
      when 8
        x = @x
        y = @y - 1
        move_up
      if Input.dir4 > 0
        unless $game_map.passable?(x, y, 0)
          # 启动判定是正面
          p 1
        end
      end

一幢墙就会 p 1  你把它改成 播放SE就成了

另外我在6r回答你的问题。。。你去认可哈。。我攒积分下载那个提取素材的东西。。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-24 11:32 , Processed in 0.020999 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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