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

Project1

 找回密码
 注册会员
搜索

事件与事件接触的问题

查看数: 1399 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-8-24 20:37

正文摘要:

本帖最后由 worseworst 于 2009-8-25 09:29 编辑 我想做出这样的效果: 条件分歧:事件1与事件2接触 ……………… 分歧结束 由于这个分歧需要在不同的事件里用很多次,我不想用“事件坐标代入变量”的方法,觉得 ...

回复

worseworst 发表于 2009-8-26 10:22:30
恩恩,谢拉,不过我在使用的时候发现问题了,事件1在事件2的右下方也能执行分歧内容,于是我就改了一下,改成:
  1. # 求得事件1与事件2之间坐标的差
  2.     sx = $game_map.events[event_id1].x - $game_map.events[event_id2].x
  3.     sy = $game_map.events[event_id1].y - $game_map.events[event_id2].y
  4.     # 求得差的绝对值
  5.     abs_sx = sx > 0 ? sx : -sx
  6.     abs_sy = sy > 0 ? sy : -sy
  7.     # 当事件1在事件2旁边时,即:
  8.     #   1
  9.     #  121
  10.     #   1
  11.     if abs_sx + abs_sy == 1
  12.         return 1
复制代码
这样好像更简单。
0978912012 发表于 2009-8-25 13:18:03
提示: 作者被禁止或删除 内容自动屏蔽
worseworst 发表于 2009-8-25 08:13:06
本帖最后由 worseworst 于 2009-8-25 09:27 编辑

恩,问题解决了,太感谢拉
不过if那里要加上括号,应该是
if (($game_map.events[event_id1].x == x1) or
       ($game_map.events[event_id1].x == x2)) and
       (($game_map.events[event_id1].y == y1) or
       ($game_map.events[event_id1].y == y2))

让我再问一个问题
系统默认的脚本没有这样写,是不是因为在game_character 3 里面类似有下面红色的句子?
#--------------------------------------------------------------------------
  # ● 向下移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def move_down(turn_enabled = true)
    # 面向下
    if turn_enabled
      turn_down
    end
    # 可以通行的场合
    if passable?(@x, @y, 2)
      # 面向下
      turn_down
      # 更新坐标
      @y += 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y+1)
    end
  end




----------------------------------------------------------
我这几天不在家,还是先结贴好了,谢谢楼上热情的回答~~~
0978912012 发表于 2009-8-25 06:47:48
提示: 作者被禁止或删除 内容自动屏蔽
worseworst 发表于 2009-8-25 00:57:39
唉,我是脚本盲……话说回来真是谢谢楼上拉,现在没有语法错误了。
那说说新的问题,在“事件开始条件”那里有个“与事件接触”,就是对方跑过来接近角色也能引发事件。我就想能不能用条件分歧,如果事件1(我把它的移动规则改为接近事件2了)跑到事件2(不移动的)那里,就执行下面的内容。但是如果按照上面的脚本,事件1就只会跑到事件2旁边,而不会执行条件分歧下面的内容,就是说定义的新函数的值取不到1,也就是说
“if $game_map.events[event_id1].x == $game_map.events[event_id2].x and $game_map.events[event_id1].y == $game_map.events[event_id2].y”这个条件不能达到,可是默认的脚本里面是“if @trigger == 2 and x == $game_player.x and y == $game_player.y”,形式应该差不多的(应该跟那个trigger没有关系的),却没有达到想要的效果。
请问还需要在新脚本里加些什么内容呢?
0978912012 发表于 2009-8-24 23:36:43
提示: 作者被禁止或删除 内容自动屏蔽
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-1-8 03:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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