查看: 7553|回复: 10

[已经解决] 怎样设置能穿越地形的怪追逐玩家,触碰即死?

[复制链接]
梦石
0
星屑
865
在线时间
19 小时
注册时间
2013-1-15
回帖
2
发表于 2013-1-26 22:31:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 scwindarea 于 2013-1-27 17:22 编辑

完全的新手,之前搜了一下发现只有下面这个帖,但是我希望这个怪能够穿地形,发现选项里选择了能够穿透,触发条件选择和事件触碰以后,因为怪物能够穿透地形也能穿透玩家,所以大多数情况下追到以后就这样穿过了完全没有触发事件

请问这该怎么办?

我再说详细一点,一开始是按照有些同学的回复设置的,见图1中,即移动方式设为靠近,勾选能够穿透,然后与事件碰触,但是发现这样并没有出现预期中的效果,大多数情况是怪直接穿过玩家的像素图,个人认为是穿透和碰触之间有所矛盾

现在是按照沙发的方法设定了一个距离判断,如图2,表示刚刚开始上手还有很多不会,感谢大家的帮助^^



之前搜到的帖:
想做一个明怪追逐,接触到主角,主角即死,求教设置。
http://rpg.blue/forum.php?mod=vi ... &fromuid=327392


原来的设置

原来的设置

现在的设置

现在的设置
梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-1-26 22:48:39 | 显示全部楼层
并行处理:变量代入玩家、事件的坐标,判断怪与玩家之间的距离,距离<=1触发GameOver
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2013-1-26 23:23:28 | 显示全部楼层
不需要,事件触发条件设置为事件接触,事件设置为游戏结束就可以。
回复

使用道具 举报

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
回帖
858
发表于 2013-1-26 23:24:05 来自手机 | 显示全部楼层
做個事件,會跟玩家走的。
當與接觸玩家,玩家hp為零。
回复

使用道具 举报

梦石
0
星屑
85
在线时间
424 小时
注册时间
2009-8-3
回帖
937
发表于 2013-1-27 10:17:32 | 显示全部楼层
穿透的话,左下角的选项勾上允许穿透就行了啊。。。
回复

使用道具 举报

梦石
0
星屑
407
在线时间
1291 小时
注册时间
2013-1-12
回帖
3349

贵宾

发表于 2013-1-27 11:08:48 | 显示全部楼层
新建事件--觸发調件改成 事件接觸  自主移動選接近  要勾上穿透  
然後右邊事件欄設個遊戲結束  其他可以自己設  (死前要對話的話就在"遊戲結束"前加入對話  後面要選等待等一下下
不然太快有点怪)

回复

使用道具 举报

梦石
0
星屑
865
在线时间
19 小时
注册时间
2013-1-15
回帖
2
 楼主| 发表于 2013-1-27 17:13:04 | 显示全部楼层
Sion 发表于 2013-1-26 22:48

谢谢~~ 按照你的方法做出来了 ^^

请问这种事件的变量操作和分支判断之类的可以直接用脚本代码写么?总觉得一条一条加不是很自由
回复

使用道具 举报

梦石
0
星屑
50
在线时间
97 小时
注册时间
2011-11-6
回帖
47
发表于 2013-1-27 18:10:43 | 显示全部楼层
不用脚本代码也行吧,直接公共事件{:2_278:}
回复

使用道具 举报

梦石
0
星屑
3905
在线时间
1972 小时
注册时间
2013-1-3
回帖
9146
发表于 2013-1-27 18:23:52 | 显示全部楼层
事件触发是与主角接触,然后设置路线,遇到时游戏结束
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-1-27 19:59:45 | 显示全部楼层
本帖最后由 Sion 于 2013-1-27 20:08 编辑
scwindarea 发表于 2013-1-27 17:13


如果是少量事件的话,直接在事件里插入脚本比较简单:
  1. sx = $game_map.events[n].x - $game_player.x #n是作为怪物的事件编号
  2. sy = $game_map.events[n].y - $game_player.y
  3. SceneManager.goto(Scene_Gameover) if (sx.abs + sy.abs) == 0
复制代码
如果插入脚本的事件就是当做怪的事件,也可以这样写:
  1. sx = get_character(0).x - $game_player.x
  2. sy = get_character(0).y - $game_player.y
  3. SceneManager.goto(Scene_Gameover) if (sx.abs + sy.abs) == 0
复制代码
其实在并行事件里操作公共变量会导致掉帧,所以还是推荐直接写脚本。

大量事件的话就要在Game_Event里update方法内加入判断了。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部