Project1

标题: 【★】如何制作纯事件推箱子谜题? [打印本页]

作者: 迷糊的安安    时间: 2012-10-8 13:53
标题: 【★】如何制作纯事件推箱子谜题?
本帖最后由 Mic_洛洛 于 2012-10-16 22:21 编辑

本问题为【Ace推荐问答计划】活动问题。
详情请点击:http://rpg.blue/forum.php?mod=viewthread&tid=251118

实现要求:在地图特定区域内,制作一个推箱子谜题。
单个的箱子可以由玩家接触推动,两个连在一起的箱子不能推动。
所有的箱子均不得被推出指定区域。
当所有的指定点均有箱子压住时,谜题解开。
制作一个复位NPC,当谜题卡住时,和复位NPC对话,所有箱子位置复原。dsu_plus_rewardpost_czw
作者: hcm    时间: 2012-10-9 00:42
本帖最后由 hcm 于 2012-10-10 13:15 编辑

提一下思路好了,
推箱子最简单是让箱子用设置移动路线的远离角色(与玩家接触),但在玩家经过侧面时箱子也会动。
所以事件的话最好在箱子的事件点(与玩家接触)用条件分歧分别对4方向判定,例如:
当玩家面朝下,
      当按钮【下】被按下时,
            箱子向下移动;(主站好像发了类似的http://rpg.blue/thread-242879-1-1.html,好像有点BUG,就改了点)
(其他方向类推,这样如果事件点不可穿透自然不会两个箱子还推得动了,自然障碍也越不过)

把箱子推到点可以用变量,例如:
把箱子X坐标设为变量A,Y为B,
当变量A=XXX,
      当变量B=XX,(XXX,XX为指定地点地图ID)
            C变量+1,(解开谜题事件点的条件为C变量达到一定数值,自动执行)

又因为离开一次地图后本页的事件点位置要恢复的,所以只要建一个没用的空地图,
和NPC对话后,先淡出,再场所移动到空地图,再移回来,淡入即可复原。���
作者: qbjxiaolei    时间: 2012-10-10 00:00
是说制作一个计算方法,自动制作推箱子的谜题?
作者: 345912390    时间: 2012-10-10 11:52
本帖最后由 345912390 于 2012-10-10 14:51 编辑

最新工程http://pan.baidu.com/share/link?shareid=76961&uk=3843192968
游戏采中区域判断箱子的移动区域和目标区域
用角色方向判断箱子的移动方向
使用计算累加判断游戏是否通关
事件部分脚本

作者: 迷糊的安安    时间: 2012-10-10 12:15
345912390 发表于 2012-10-10 11:52
http://pan.baidu.com/share/link?shareid=76594&uk=3843192968

这个就不上图了,自己下载测试

http://player.youku.com/player.php/sid/XNDU5OTU2MDE2/v.swf
有BUG:
1、这是踢箱子不是推箱子……角色都没跟着动。
2、通过按钮判断会产生BUG,使得箱子可以侧向移动,建议修改方向判定。
3、复位只能复位普通箱子,不能复位黑色箱子,思考一下更好的复位方法?
4、判断游戏完成的方法错误,把两个普通箱子推到点上,复位,再把另外两个点上推上箱子,现在只有2个点上有箱子也会游戏通过。

作者: hcm    时间: 2012-10-10 14:19
本帖最后由 hcm 于 2012-10-10 14:24 编辑
迷糊的安安 发表于 2012-10-10 12:15
有BUG:
1、这是踢箱子不是推箱子……角色都没跟着动。
2、通过按钮判断会产生BUG,使得箱子可以侧向移 ...


角色跟着动的话在箱子移动事件指令后加一个让玩家前进一步(设置移动路线)的事件指令即可。
黑箱子应该不是必要道具,可以删掉,要复位用和一般箱子同样的事件指令设置事件位置不就行了吗?
但不知我为何试了多次都没侧移。
作者: 345912390    时间: 2012-10-10 14:31
迷糊的安安 发表于 2012-10-10 12:15
有BUG:
1、这是踢箱子不是推箱子……角色都没跟着动。
2、通过按钮判断会产生BUG,使得箱子可以侧向移 ...

重新 整理了一下
说实在的,真不知道 那个侧移是怎样 测出来的!
作者: 迷糊的安安    时间: 2012-10-10 20:59
本帖最后由 迷糊的安安 于 2012-10-11 01:26 编辑
345912390 发表于 2012-10-10 14:31
重新 整理了一下
说实在的,真不知道 那个侧移是怎样 测出来的!


侧移是因为你原来的工程在触发事件以后又取了一次按键值,所以当二键同时按时,你同时按下的两个键,一个触发了事件,另一个被按键值取值,就会出现侧移。

新工程不错,没出现BUG,不知道应用八方向脚本的时候会不会有BUG……
我个人的倾向是根据箱子与玩家的相对坐标位置来判定会比较无懈可击?
另外,角色的移动速度在推箱子的时候也可以减慢到与箱子相同,会比较有真实感。
判定游戏的胜负可以用公共事件,在每次移动后取得所有定点的数据然后调用公共事件判定一次。
全部复位其实不必改事件位置,只要场景移动到一个空地图再移动回来就可以了。


总体来说非常不错了。乐意把详细思路再写一下嘛?

有空向着更高级的思路试验? 例如场上有几种不同颜色的箱子,三个及以上相同颜色的箱子推在一起连成横竖行就会消掉?不过这样已经可以向解谜游戏挑战了……
作者: c248611    时间: 2012-10-13 15:42

作者: 没是的人    时间: 2012-10-13 17:06
本帖最后由 Mic_洛洛 于 2012-10-16 22:19 编辑

问题已解决,范例工程已发到技术发布区:
点此链接,传送至技术发布帖:http://rpg.blue/thread-251733-1-1.html




@迷糊的安安
推箱子范例(百度网盘):
http://pan.baidu.com/share/link?shareid=80509&uk=3993422208
或者下这个200m+的data文件
Data.zip (217.46 KB, 下载次数: 149)


(完成)在地图特定区域内,制作一个推箱子谜题。
(完成)单个的箱子可以由玩家接触推动,两个连在一起的箱子不能推动。
(完成)所有的箱子均不得被推出指定区域。(不知道算不算完成,但我玩过的推箱子游戏就是这样的)
(完成)当所有的指定点均有箱子压住时,谜题解开。
(改进)制作一个复位NPC,当谜题卡住时,和复位NPC对话,所有箱子位置复原。

最后一个说明一下,我觉得复位npc很不方便,想重新开始的时候还得跑到专门的地方去和npc对话。。。
甚至你用箱子把通向复位npc的路封住了以后就没法复位了。。。
所以我用了一个推箱子游戏中用不到的键shift来复位(纯事件)

还有一个在提出的要求里面居然没有一个很必要的功能:已经在位置上的箱子必须变个外形,这个在推箱子游戏中十分重要
我用了两种方法完成这个范例,其中方法二有这个功能。

bug:有一个很难触发的bug(我只使出过一次),快速的按键,会出现人箱子分离的bug
(举个例子,推一下箱子,再马上按反方向(快速1/60秒的样子,也就是一帧),人物不是先跟过去再回来,而是直接变个朝向不动了)
一个触发频率很低的bug(好像方法二没有),偶尔会出现踢箱子的情况。。。帮我测试到原因的人我会塞糖
作者: jianghailong123    时间: 2012-10-13 18:07
没是的人 发表于 2012-10-13 17:06
@迷糊的安安
推箱子范例(百度网盘):
http://pan.baidu.com/share/link?shareid=80509&uk=3993422208

是怎么判定成功过关的  脚本?   {:2_274:}那箱子是个好东西 复制下了。  求个可以推箱子到特定地方 然后完成的方法。   例如前方是坑 过不去,把箱子推过去就能从箱子上过来了
作者: jianghailong123    时间: 2012-10-13 18:16
没是的人 发表于 2012-10-13 17:06
@迷糊的安安
推箱子范例(百度网盘):
http://pan.baidu.com/share/link?shareid=80509&uk=3993422208

我想弄个箱子下面藏着东西,把箱子推开 就能发现下面的东西。    用并行把你的箱子移动到物品的位子,然后你那箱子就动不了。。。
作者: jianghailong123    时间: 2012-10-13 18:22
jianghailong123 发表于 2012-10-13 18:16
我想弄个箱子下面藏着东西,把箱子推开 就能发现下面的东西。    用并行把你的箱子移动到物品的位子,然 ...

{:2_262:}是没点暂时消失  搞定了 3q
作者: Mic_洛洛    时间: 2012-10-16 22:15
经测试@没是的人在【技术发布区】发布的推箱子范例
为本问题的认可答案!
在此给出链接,并发卡!
http://rpg.blue/thread-251733-1-1.html




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