as3 hittestobject 不工作,不明白为什么
as3 hittestobject not working, dont understand why
碰撞不起作用我不明白为什么,我将碰撞动画片段放入对象中,它似乎无法识别其中一个,但可以识别另一个,如果您玩游戏,很抱歉以令人困惑的方式陈述问题你会明白的。我也愿意改变碰撞的工作方式,只要它能工作,我会非常高兴
我会尽力解释。当您单击 "Down" 或 "Up" 英雄 (box_MC) 时会与 "Top_Door" 和 "Bottom_Door" 两扇门发生碰撞。在 "bang" 函数中首先检查与 "Bottom_Door" 的碰撞,因此,英雄总是下降 (.y += 100) 并且第二个条件 (Top_Door) 永远不会为真。如何解决这个问题?添加变量 var lastAction:String;
。此变量将存储最后一个操作:"up" 或 "down"。在 "down_MC_P" 函数中通过 "down" 初始化此变量。里面 "up_MC_P" — "up"。接下来,将第一个条件替换为 if (box_MC.hitTestObject(cycle[i].Bottom_Door) && lastAction == "down")
和第二个条件:if(box_MC.hitTestObject(cycle[i].Top_Door) && lastAction == "up")
。就这些了。
碰撞不起作用我不明白为什么,我将碰撞动画片段放入对象中,它似乎无法识别其中一个,但可以识别另一个,如果您玩游戏,很抱歉以令人困惑的方式陈述问题你会明白的。我也愿意改变碰撞的工作方式,只要它能工作,我会非常高兴
我会尽力解释。当您单击 "Down" 或 "Up" 英雄 (box_MC) 时会与 "Top_Door" 和 "Bottom_Door" 两扇门发生碰撞。在 "bang" 函数中首先检查与 "Bottom_Door" 的碰撞,因此,英雄总是下降 (.y += 100) 并且第二个条件 (Top_Door) 永远不会为真。如何解决这个问题?添加变量 var lastAction:String;
。此变量将存储最后一个操作:"up" 或 "down"。在 "down_MC_P" 函数中通过 "down" 初始化此变量。里面 "up_MC_P" — "up"。接下来,将第一个条件替换为 if (box_MC.hitTestObject(cycle[i].Bottom_Door) && lastAction == "down")
和第二个条件:if(box_MC.hitTestObject(cycle[i].Top_Door) && lastAction == "up")
。就这些了。