Project1

标题: 〓 如何做出踢箱子的功能? [打印本页]

作者: 无心牙    时间: 2014-6-5 03:46
标题: 〓 如何做出踢箱子的功能?
本帖最后由 无心牙 于 2014-6-7 20:43 编辑

〓 如何做出踢箱子的功能?
我做的一些事件和移动判断都做不出把箱子踢来踢去的效果!
当然踢一次不是移动一格了~
谁能提供我思路或者方法么?

————————————————————6月7日————
经过。。。忘记多长时间的反复操作修改吧!
现在也不敢说就一定没有明显bug了!
但是也算可以综合之前的问题总结一套了!
总的来说!就是要做一个在某个范围地图内的踢箱子的游戏!
而箱子的特点是那种一踢就可以到底的,但是遇到障碍就要停止!

我的第一个错误是
地图一圈都有人物进入范围的事件!
而这个事件因为没有阻挡人物移动!所以被我忽略了“允许穿透”这个钩选
造成了箱子会被事件格所阻挡移动!

我的第二个错误是
箱子移动路线的设置上!全部采用了“远离玩家”这个设置!
这个设置最明显的问题就是无论箱子移动的多快!在这个时间差里人物都是可移动的!
而人物移动后!箱子会因为要远离玩家而斜向飞出!
这个问题已经忘记是楼下的。。。。哪位朋友指出!应该改成只一次远离玩家!其他的都是“前进一步”

当然!这里应该还有很多我没有犯的错误!
结论就是光做个踢箱子的功能都是很繁琐并且细节多多的事情呢{:6_406:}
作者: taroxd    时间: 2014-6-5 07:43
要踢两格就踢两格呗

先判断踢的方向(利用人物朝向,多次条件分歧),然后事件向那个方向移动两(x)格不就好了。

至于怎么判断”能否移动“,我现在没有环境,不能告诉你。不过应该不会太麻烦就是了。
作者: 无心牙    时间: 2014-6-5 09:02
明显不是那个意思啊!3格呢?4格呢?5格呢?难道全加判断?
作者: 无心牙    时间: 2014-6-5 09:04
taroxd 发表于 2014-6-5 07:43
要踢两格就踢两格呗

先判断踢的方向(利用人物朝向,多次条件分歧),然后事件向那个方向移动两(x)格不 ...

几格是不一定的!
用人物朝向也想过了!不过不行!向左踢之后没等箱子到达指定地点!人物改变朝向的话箱子也改!这明显不符合实际情况了!而且一旦触发就不能重复触发!
等等!有很多很多的问题在里边!
作者: moy    时间: 2014-6-5 09:57

这样难道不行?
作者: VIPArcher    时间: 2014-6-5 11:29
是要做成没遇到障碍就不会停下来的模式吗?
作者: taroxd    时间: 2014-6-5 12:40
请楼主清楚描述想要的效果啊……
作者: H·H·Y    时间: 2014-6-5 13:14
提问太模糊,不知道具体效果,能不能再讲清楚些
作者: ·雾逝者·    时间: 2014-6-5 13:24
若要做成“不遇到障碍物不停下”
给该地图障碍物加个地形标志,比如1
箱子移动时,将一个空事件放置在箱子前面,并读取该事件的地形标志
若地形标志为1则停止,不为1则继续运动
之类的

如果只是移动X格的话
直接在事件移动中加X个向n方向移动(忽略障碍物)即可
作者: 喵呜喵5    时间: 2014-6-5 13:45
敲999个向X方向移动,勾选等待结束,忽略障碍……
作者: moy    时间: 2014-6-5 16:03
VIPArcher 发表于 2014-6-5 11:29
是要做成没遇到障碍就不会停下来的模式吗?

我不明白你是哪里出的问题,但我这里不管怎么设置都没发现你所说的拐弯现象
同时我也不太明白为什么推东西要让他比主角走的还慢。如果你要让这个物体显得有分量,很难推动,请在让他速度变慢的同时让主角的速度也变慢。

作者: 喵呜喵5    时间: 2014-6-5 16:44
@VIPArcher 无法终止的小球

作者: tseyik    时间: 2014-6-5 19:11
本帖最后由 tseyik 于 2014-6-5 19:21 编辑

1:把所有不能進入的地方設定成同一種区域(例:区域63),可進入的地方設定成其他区域(非区域63)
2:判定主角方向(代入成変数:例A)
3:調査要移動的物品A方向是否可進入(非区域63)
4:非区域63,則向A方向移動物品一格(或半格x2次,1/4格x4次),移動完再回到3重覆移動
直到区域63就完成移動
上面是主角不移動的處理方法
如推後箱子移動時主角也可移動的話要自己加上處理主角移動
另外推箱子遊戯的判断也要加上移動箱子前後位置的處理
作者: 无心牙    时间: 2014-6-7 13:34
moy 发表于 2014-6-5 09:57
这样难道不行?

这样当然不行....
完全不行!
1 忽略障碍不符合物理法则!
2 远离玩家这个效果会让你站在箱子反侧的时候箱子漂移飞走!
3 不能越过事件格!
作者: 无心牙    时间: 2014-6-7 13:35
VIPArcher 发表于 2014-6-5 11:29
是要做成没遇到障碍就不会停下来的模式吗?

理论上是!但是还不能死循环!
远离玩家是肯定不行的!
会被事件格阻挡也是问题
作者: 无心牙    时间: 2014-6-7 13:39
taroxd 发表于 2014-6-5 12:40
请楼主清楚描述想要的效果啊……

踢箱子!
箱子既向踢出的方向移动!
移动距离是不一定的
但是遇到障碍一定会停止!否则不符合物理法则

作者: 无心牙    时间: 2014-6-7 13:40
H·H·Y 发表于 2014-6-5 13:14
提问太模糊,不知道具体效果,能不能再讲清楚些

踢箱子!
箱子既向踢出的方向移动!
移动距离是不一定的
但是遇到障碍一定会停止!否则不符合物理法则
其实我不觉得我提问模糊了!
不过就算模糊了!
到目前为止连一个合理的满足我模糊要求的实例都没有出现!
更别说真的要多细致了
作者: 无心牙    时间: 2014-6-7 13:43
·雾逝者· 发表于 2014-6-5 13:24
若要做成“不遇到障碍物不停下”
给该地图障碍物加个地形标志,比如1
箱子移动时,将一个空事件放置在箱子 ...

地形加标志!这个建议倒是头次听说!
之后将空事件放在箱子前?这是什么意思?箱子会被踢来踢去!根本没固定在某个位置!
另外其实箱子也无法穿越事件格

至于你说的移动x格!这个x格的x根本不是一个固定数或者范围!
所以你也无法直接调用x这个量!那么接下来说的就全无意义了
作者: moy    时间: 2014-6-7 13:43
无心牙 发表于 2014-6-7 13:34
这样当然不行....
完全不行!
1 忽略障碍不符合物理法则!

1.你真的懂什么叫忽略障碍吗,麻烦你去试过再说
2.我没遇见过这样的情况,也不明白你怎么会遇到这样的情况,建议你参考我在11楼的点评
3.这是废话,把所有理应“在人物下层”的“非障碍”事件勾选穿透
作者: 无心牙    时间: 2014-6-7 13:46
喵呜喵5 发表于 2014-6-5 13:45
敲999个向X方向移动,勾选等待结束,忽略障碍……

x方向是任何方向都可能!而且还可以反复!
难道你要对一个箱子进行9999999999次命令么?
那么有30个箱子呢?你想对一个箱子进行9999999999999999999999次命令么?
而且忽略障碍本身就是错误的!
作者: moy    时间: 2014-6-7 13:55
如果你觉得我们这些回帖的都是在添乱,你大可不必来发求助
这话题我觉得可以结束了。我不会再发回复,看不懂你就是智商低,再来点评和回复就是情商低。
简直恼人。

@taroxd 觉得俺说的过激了就帮我编辑了吧,我懒得管了
作者: 无心牙    时间: 2014-6-7 14:28
moy 发表于 2014-6-5 16:03
我不明白你是哪里出的问题,但我这里不管怎么设置都没发现你所说的拐弯现象
同时我也不太明白为什么推东 ...

不不不!
你这个只是移动一格!
移动几格是不一定的!
也就是踢箱子!
踢出去的箱子可能要移动3格!30格!或者70格!
都不一定
作者: taroxd    时间: 2014-6-7 14:32
无心牙 发表于 2014-6-7 14:28
不不不!
你这个只是移动一格!
移动几格是不一定的!

那14L的解答呢?哪里有问题?
作者: 无心牙    时间: 2014-6-7 14:35
moy 发表于 2014-6-7 13:43
1.你真的懂什么叫忽略障碍吗,麻烦你去试过再说
2.我没遇见过这样的情况,也不明白你怎么会遇到这样的情 ...

忽略障碍就是当移动时遇到不能通过的图块就会跳过该指令继续执行
11楼的点评肯定是看到19楼之前就看过的了
不过他们说的那些我已经都过做了!真的还有很多问题存在在里边
转向就是一个!
你没遇到这个情况只能说明你并非做足万全的各种测试
作者: moy    时间: 2014-6-7 14:43
无心牙 发表于 2014-6-7 14:28
不不不!
你这个只是移动一格!
移动几格是不一定的!

第一,我不明白你说的“可能”是指什么随机数?还是说撞到障碍就停下来。
如果是前一种,我想说你有病。
如果是后一种,我想说你得做好箱子无法复位的准备
第二,你真的不知道路线移动里有个小勾是循环吗
接触事件第一个移动路线设置成背向玩家等待结束,第二个移动路线设置成循环的忽略障碍前进一步
这么做会让事件像皮球一样,只要接触到玩家就会向“外侧”弹,因此不要来问我为什么人冲到箱子后面箱子往回跑了。如果想让他再次接触到玩家时静止,自己重开贴换个态度问吧。
第三,我已经耐着性子讲到这个程度了,麻烦你能不能不要回复我了。求你自己试试什么叫移动路线,然后你去问其他人吧,这态度我不想伺候。
作者: 无心牙    时间: 2014-6-7 15:02
moy 发表于 2014-6-7 14:43
第一,我不明白你说的“可能”是指什么随机数?还是说撞到障碍就停下来。
如果是前一种,我想说你有病。
...

请不要想像我的态度!你的想像都是你的想像而已!我没有如你的想像那样!因为我需要在这里指责谁或者谴责谁么?我为什么要那样?这根本就不合理!我真不知道你为什么要想像一些不合理的事情出来!更不知道你为什么要"想像"!
作者: 无心牙    时间: 2014-6-7 15:09
moy 发表于 2014-6-7 14:43
第一,我不明白你说的“可能”是指什么随机数?还是说撞到障碍就停下来。
如果是前一种,我想说你有病。
...

哦对了!
虽然你想像了很多我不好的态度出来!
但是你依然很友好的提供了你方法的细节!
不过你说的循环我怎么可能不知道!你才是真的附带了感情的指责我!
好吧!这也是我的想像!
抛开这些吧!
你说的循环并不是没有试过!
这并不会不造成箱子转向!
说个最简单的例子吧!有例子可能更容易知道问题到底出在哪里
你向右踢一个箱子!这个箱子的右边大约20格的位置有个墙壁阻挡箱子继续移动!
当你踢出箱子后!箱子在靠近墙壁前!
这个时候如果你向下移动!
那么箱子就会向着右上斜着飞出!
这个就是转向的问题了!

当然!如果别人的态度对你很重要!并且你喜欢想像别人的态度是什么样!
并且还想像了我的态度很差!那你确实还是不给我回复比较好!这样才不至于让你不开心!
这样我也会很被冤枉!
作者: moy    时间: 2014-6-7 15:16
无心牙 发表于 2014-6-7 15:09
哦对了!
虽然你想像了很多我不好的态度出来!
但是你依然很友好的提供了你方法的细节!

好吧好吧,不管你的语气到底如何,以及这样的行文习惯会不会让你四处碰壁,问题还是要解决,而我现在也消气了。仅针对语气而言。

但是事实上你还是没有仔细看我的回复。
我说的很明白,如果你要循环,请务必使用前进一步
因为远离玩家事实上自带一次判断,所以自然会刷新方向。如果你不希望在人物走的时候刷新,那么只要在接触时判断,也就是背向玩家,然后另外单独弄一个移动路线,勾选循环前进一步
作者: ·雾逝者·    时间: 2014-6-7 18:24
本帖最后由 ·雾逝者· 于 2014-6-7 18:28 编辑
无心牙 发表于 2014-6-7 13:43
地形加标志!这个建议倒是头次听说!
之后将空事件放在箱子前?这是什么意思?箱子会被踢来踢去!根本没固定在 ...


在箱子向n方向移动时,通过XY坐标判定,将空白事件放置在箱子移动的前方即可
空白事件的话无法阻挡任何事件的运行,你可以试试
若真无法穿透,请在空白事件的左下角勾选“允许穿透”

若要做成“遇到障碍物”才停下来,x确实是个非固定数
——但其实它也可以调取
看游戏具体帧数,调取过程也许可以在1秒内完成

唔……对LZ的要求依然不甚明确
踢箱子按照正常物理过程
——遇到障碍物时对障碍物施加力,超出静摩擦范围就推着障碍物一起走
——由于摩擦力作用,速度减缓
LZ可否将具体事件截个图?
对这个踢箱子到底如何运作很好奇呀




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