level 1
如果我想让一个物体随着路线移动,另一个物体跟着移动,用父对合适吗?怎么用。。。我在control栏里看到了一个Call parent event 动作,那个有什么用?
2014年11月29日 14点11分
1
level 10
问题是用父对怎么做?call parent 动作就是在这个事件里做出与父物体相同的动作。
2014年11月29日 15点11分
2
level 9
请楼主最好先了解“父对象”的含义。
跟着移动的话,不知mp类以及ds_queue类函数可不可以满足楼主
2014年11月30日 07点11分
3
吧务
level 13
其一:父对象是物体对物体的关系,不是实例对实例的关系
其二:使用父对象和追踪移动没有直接联系
其三:Call parent event 动作实际上是“继承”动作,对应GML代码event_inherited(),作用是执行父对象中同等事件的动作。如魂斗罗的小兵,被弹后执行“死翘翘”动作,会掉枪的小兵设置普通小兵为父对象,被弹时先执行“掉枪”,再继承动作。如果父对象设置了某个事件而子对象没有相关设置,则子对象会执行和父对象相同的动作;如果子对象设置了相同的事件,则只有在“执行继承动作”的时候执行相关动作,否则不执行。
那么……LZ实际是想问怎么做跟随吧。首先是如果让B跟随A(特别是房间里有多个B跟随多个A的时候),一定要由A来创建B,并且在创建时将自身ID传递给“随从”。
比如在A里执行
var i;
i=instance_create(x,y,B);
i.mubiao=id;
以防止某个“随从”追到别的“主子”。这样,在B里就可以用mubiao.x和mubiao.y来调用“主子”的位置了。
获取“主子”坐标以后,就是“跟随”的算法,目前主要有2种:
方法A、实际路径追踪:
在随从里建立一个数组,用于记录主子的坐标变化,每次主子坐标变化了就更新一下数据。像贪吃蛇的蛇头和蛇尾的关系。尾巴总处于头的轨迹后方身长长度的位置,如果头不动,尾巴也不动。//当然你也可以做成如果头不动,尾巴就追踪到和头重合
方法B、最短路径追踪:
方法就是随从来判断自己和主子之间是不是间隔太远,如果间隔过远,就移动到和主子距离某个定值的圆形上,同时保证自己和主子之间的方向没有变。
2014年12月05日 02点12分
4
吧务
level 12
LZ根本没理解“继承"的意义
如果一个物体随着固定路线移动,你可以用path实现。
跟随物体同样用path,但启动时间上有一定延迟即可。
2014年12月05日 02点12分
5