问题一:通过条件选中多个物品,预期是每个物品都对某个无关物品进行一次操作(最常见的就是操作玩家的得分),但实际上这个操作只进行了一次
产生原因:虽然选中了多个物品,但这条代码还是只执行了一次,自然其中的任何操作都只会进行一次
典型代码1:
奖分100:internalflag 0 is off
-玩家1:Add 100 to score
-奖分100:set internal flag 0 on
出现问题:同一条语句一次执行创建了多个奖分100,只加了100分
问题分析:因为没有办法获取到新创建的100分的数目,就算有也相当复杂得不偿失,只能想别的办法让这条代码执行要加分的次数
解决方法一:可以使用下面的代码
修改后的代码一:
Pickobjects with flag #0 off(此条件为"Create object"物件的条件)
Pick one of奖分100
-玩家1:Add 100 to score
-奖分100:set internal flag 0 on
注:此代码表现为一百一百的加(每帧加一百),如果需要瞬间加完可以将上面的代码放到一个fast loop里
典型代码二:
马里奥头顶 is overlapping 砖块
-玩家1:Add 50 to score
-砖块:Destroy
出现问题:当马里奥同时顶碎两块砖块的时候,只加50分
问题分析:这个问题比较极端了,砖块都没了自然不能像上个例子那样筛选了。其实这个问题的解决方法更简单,collision条件有触发型(红字)和非触发型两种,这个例子用了非触发型条件,代码顺序执行到这行时马里奥顶了俩砖,符合条件,执行一次,只加50分。把这个条件改成触发型后马里奥顶到几块砖就触发几次这行代码,这样就没有问题了
修改后的代码二:
Collision between 马里奥头顶 and 砖块
-玩家1:Add 50 to score
-砖块:Destroy
多说一句:这个问题不怪编辑器,到头来还是代码的逻辑有问题,但当初这个问题的确困扰了我很久,而且一直以为是编辑器的bug,所以把它一并写出来。
而接下来的问题全部是讲如何与MMF2的bug抗争