Project1

标题: 〓一些条件判断可以简单的用事件完成么? [打印本页]

作者: 无心牙    时间: 2014-6-8 00:12
标题: 〓一些条件判断可以简单的用事件完成么?

将3个巨石移动到上边3个红色位置
开门
3个红色位置上的巨石在任何时候在缺少巨石的时候都是关门的
也就是之前门开了但是把巨石移开后门会重新关闭
这样的判断可以简单的用事件完成么?

目前尝试过变量事件判断还有开关
还是不得要领

作者: VIPArcher    时间: 2014-6-8 00:33
本帖最后由 VIPArcher 于 2014-6-8 22:38 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ☆ Custom Adventure 踩踏/置物判断
  3. # -- Last Updated: 2014.6.3
  4. # -- by Moy
  5. # -- 转载请保留以上信息
  6. #==============================================================================
  7. #   本脚本判断一个在人物下层的事件是否被其他事件/角色踩踏
  8. #   对本事件使用只需要在分歧脚本中使用get_character(0).stepped_on?即可。
  9. #   判断别的事件请自行获取实例后使用。
  10. #==============================================================================
  11. # ■ Game_Event
  12. #==============================================================================
  13. class Game_Event < Game_Character
  14.   #--------------------------------------------------------------------------
  15.   # ● 判断本事件是否被其他事件/角色踩踏
  16.   #--------------------------------------------------------------------------
  17.   def stepped_on?
  18.     stepped_by_events?(@x,@y) || stepped_by_player_characters?(@x, @y)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 判断某位置是否被其他事件踩踏
  22.   #--------------------------------------------------------------------------
  23.   def stepped_by_events?(x, y)
  24.     $game_map.events_xy_nt(x, y).any? do |event|
  25.       event.normal_priority?
  26.     end
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 判断某位置是否被主控角色踩踏
  30.   #--------------------------------------------------------------------------
  31.   def stepped_by_player_characters?(x, y)
  32.     @priority_type == 0 && $game_player.collide?(x, y)
  33.   end
  34. end
用这个脚本
3个开关都分歧条件get_character(0).stepped_on?

门哪里就分歧当变量X  >=3时开门
又传了个工程,事件和脚本方法都有,自己看着做吧。
呼唤@Sion  

Project2.rar

1.43 MB, 下载次数: 136

应该符合你的要求了

事件 和脚本.rar

1.43 MB, 下载次数: 155

你自己看吧


作者: qknight    时间: 2014-6-8 00:33
这个参考推箱子事件移动石头,然后读取并判断石头是否被移动到某三个位置,在任何一个位置时打开一个开关,否则关闭开关,三个开关都打开时门打开
作者: fux2    时间: 2014-6-8 09:08
可以推动每个石头的时候判断一下这个石头的地形标记之类,
把按钮下面的地形标记设置为特殊的数字,
如果地形标记为预计标记,则某变量+1,如果到3就开门。
作者: ·雾逝者·    时间: 2014-6-8 11:44
本帖最后由 ·雾逝者· 于 2014-6-8 11:49 编辑

有个很简单的办法

3颗巨石均有两个事件页,平时放在事件页1上,开关01或02打开或变量01=1后跳到事件2(取决于是哪颗巨石)
事件页一:判定方向,推动,判断石头与按钮XY坐标,如相同则开关01或02打开,或变量01=1(取决于是哪颗巨石)
事件页二:判定方向,推动,开关01或02关闭,或变量01=0(取决于是哪颗巨石)
门也有2个事件页,平常在事件页1,开关01与02同时打开,同时变量01=1时调到事件页2
事件页1:空白,行走图为关闭
事件页2:接触场景移动,行走图为开启

如此,只有同时3颗巨石都在按钮上,门才会开启
有一颗离开则关闭一个条件,门也会立刻关闭
共用到2开关 3变量,制作时间约为3-6分钟

——————
唔,看了下LS,似乎LZ对XY坐标判定不太熟悉,于是来贴教程
首先,变量02与03,可以分别命名为:02"巨石" 03"按钮"
变量02=事件页-变量操控-角色-巨石1-X坐标
变量03=事件页-变量操控-角色-按钮1-X坐标
条件分歧:若变量02=03,则
变量02=事件页-变量操控-角色-巨石1-Y坐标
变量03=事件页-变量操控-角色-按钮1-Y坐标
条件分歧:若变量02=03,则
开关01=ON
↑此时视为巨石与按钮重合,因其XY坐标一样
作者: H·H·Y    时间: 2014-6-8 13:15
并行处理事件用6个变量赋值三个球的XY坐标,条件判断当所有球的Y坐标等于按钮Y坐标的情况,再分别讨论当球的X坐标等于三个按钮的X坐标的情况,条件全部符合就打开开关。

如果要加上按钮特效,那么就把一个球推入三个按钮的情况全部讨论了吧。
作者: moy    时间: 2014-6-8 14:34
说实话因为一想就觉得很麻烦因此我没考虑完全用事件做过
总之你需要用到这个获取指定位置的信息
首先清零使用到的变量
获取3个石头的xy,然后分别获取这3个xy位置的地形标志/区域ID(我推荐用区域处理)
如果是指定的地形标志/区域ID,则给某个变量+1
以上执行全部完毕后,判断该变量是否为3,为3则打开门
作者: moy    时间: 2014-6-8 16:45
姑且给你贴一下我自己的工程里使用到的情况吧。
和那个脚本略有不同的是我是直接使用的其中不需要事件要求的,因为我偷懒没给开关放事件(因为我不打算设置动画效果
并且由于不想额外设置开关,我直接用脚本改了“门”的独立开关,也就是最左边那个红箭头
于是一共4个事件,第一个是并行判断,剩下3个是完全一样的石头
判断事件:

石头:

全景图





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1