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

Project1

 找回密码
 注册会员
搜索
查看: 2357|回复: 8
打印 上一主题 下一主题

[已经解决] 关于事件接触判定问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
869 小时
注册时间
2009-3-13
帖子
782
1
发表于 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 认可答案

查看全部评分

我的寒假活动作品:http://rpg.blue/forum.php?mod=viewthread&tid=281065
咱的龙蛋,求点击:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
869 小时
注册时间
2009-3-13
帖子
782
2
发表于 2010-9-24 13:40:32 | 显示全部楼层
关于LZ又提出的事件掉入悬崖,这个实现起来就比较简单:
并行处理条件分歧脚本输入:
  1. $game_map.terrain_tag($game_map.events[事件编号].x, $game_map.events[事件编号].y) == 悬崖的地形标志
复制代码
然后就是掉悬崖......
我的寒假活动作品:http://rpg.blue/forum.php?mod=viewthread&tid=281065
咱的龙蛋,求点击:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-18 02:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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