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

Project1

 找回密码
 注册会员
搜索

关于事件接触判定问题

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

正文摘要:

本帖最后由 猫猫~ 于 2010-9-24 12:13 编辑 1.如何在并行处理事件中判定是否与主角接触? 比如条件分歧:与主角接触:怎么怎么地                 &nb ...

回复

认真的学 发表于 2010-9-24 13:40:32
关于LZ又提出的事件掉入悬崖,这个实现起来就比较简单:
并行处理条件分歧脚本输入:
  1. $game_map.terrain_tag($game_map.events[事件编号].x, $game_map.events[事件编号].y) == 悬崖的地形标志
复制代码
然后就是掉悬崖......
认真的学 发表于 2010-9-24 13:04:42
本帖最后由 认真的学 于 2010-9-24 13:34 编辑

1、如果是【与主角接触的话】:
事件【脚本】输入以下脚本
  1. $playerx = $game_player.x
  2. $playery = $game_player.y
  3. if Input.press?(Input::UP)
  4. $playery = $game_player.y-1
  5. end
  6. if Input.press?(Input::DOWN)
  7. $playery = $game_player.y+1
  8. end
  9. if Input.press?(Input::LEFT)
  10. $playerx = $game_player.x-1
  11. end
  12. if Input.press?(Input::RIGHT)
  13. $playerx = $game_player.x+1
  14. end
复制代码
(当然不够输的话可以分成几部分,但是一个if一定要对一个同一脚本中的end)
然后条件分歧的脚本输入
  1. $game_map.events[事件编号].x == $playerx&&$game_map.events[事件编号].y == $playery
复制代码
之后就可以写入与主角接触的内容了......
2、这个问题我的方法可能复杂了点,不知道其他的大大们有没有更好的方法......
脚本编辑器找到Game_Character 3,在25左右的increase_steps下插入
  1. falseall
  2. @movedown = true
复制代码
在46行左右的increase_steps下插入
  1. falseall
  2. @moveleft = true
复制代码
在70行左右的increase_steps下插入
  1. falseall
  2. @moveright = true
复制代码
在94行左右的increase_steps下插入
  1. falseall
  2. @movedown = true
复制代码
然后在倒数第二行的下面插入
  1. def falseall
  2.     @movedown = false
  3.     @moveleft = false
  4.     @moveright = false
  5.     @moveup = false
  6.   end
  7.   def getmovedown
  8.     return @movedown
  9.   end
  10.   def getmoveleft
  11.     return @moveleft
  12.   end
  13.   def getmoveright
  14.     return @moveright
  15.   end
  16.   def getmoveup
  17.     return @moveup
  18.   end
复制代码
接着并行事件,条件分歧脚本插入
  1. ($game_map.events[1].x == $game_map.events[2].x+1&&$game_map.events[1].y == $game_map.events[2].y&&$game_map.events[2].getmoveright == true)||($game_map.events[1].x == $game_map.events[2].x-1&&$game_map.events[1].y == $game_map.events[2].y&&$game_map.events[2].getmoveleft == true)||($game_map.events[1].y == $game_map.events[2].y+1&&$game_map.events[1].x == $game_map.events[2].x&&$game_map.events[2].getmovedown == true)||($game_map.events[1].y == $game_map.events[2].y-1&&$game_map.events[1].x == $game_map.events[2].x&&$game_map.events[2].getmoveup == true)
复制代码
(上面的代码中,中括号的1,2可替换为其他的事件编号,但是替换要一致,不能第一个1替换为5后第二个替换为6)
然后就是事件对撞之后如何如何了......
3、将悬崖设为可以通行,然后设置地形标志(比如设置为5),然后变量代入角色的地形标志,之后条件分歧该变量是不是等于5,如果是,就播放动画,角色透明度修改什么的......

评分

参与人数 1星屑 +300 收起 理由
六祈 + 300 认可答案

查看全部评分

猫猫~ 发表于 2010-9-24 13:03:29
回复 zhli667 的帖子
方丈,阿弥陀佛~
问题一和二:要是事件会移动捏?

问题三:事件也要顾及,我总不能X=X  Y=Y的吧每个事件设进去吧?
zhli667 发表于 2010-9-24 12:57:30
本帖最后由 zhli667 于 2010-9-24 13:15 编辑

问题1、并行事件页1设自动~写怎么怎么地~~事件页2设开关X为开时~写怎么怎么地~~在事件周围放4个事件~如果接触则开关X为开~~
问题2、在事件周围放的4个事件可以判断了吧~~
问题3、这个设角色移动就可以解决吧![至于动画、惨叫可以随便加吧]
猫猫~ 发表于 2010-9-24 12:44:57
本帖最后由 猫猫~ 于 2010-9-24 12:46 编辑

会的'吱'一声,不会的'喵'一声嘛= =

看帖不回什么的最揪心啦~
ML4455739 发表于 2010-9-24 12:35:21
不麻烦,而且除了变量至少我想不出来其他招
猫猫~ 发表于 2010-9-24 12:18:34
本帖最后由 猫猫~ 于 2010-9-24 12:35 编辑

哇!看帖不回!不能这样对待新手啊T T


还有哦,是接触,X=X  Y=Y那就重合了

用变量判定太麻烦了,有没有简单的?


献出你们的爱心吧



      ******       ******
    **********   **********
  ************* *************
*****************************
*****************************
*****************************
  ***************************
    ***********************
      *******************
        ***************
          ***********
            *******
              ***
               *

评分

参与人数 1星屑 -40 收起 理由
六祈 -40 连帖很好~

查看全部评分

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

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

GMT+8, 2024-5-21 09:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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