我想在精灵在特定持续时间内到达前一个目的地时计算新点。我怎么能这样做?
例如,我不想先计算路径,而是想在特定的持续时间结束后计算它。
PathModifier(bugduration, path, null, new IPathModifierListener()
{
public void onWaypointPassed(final PathModifier pPathModifier,final IShape pShape, final int pWaypointIndex) {
......
}
}
答案 0 :(得分:0)
您可以使用onPathFinished(){}并在上一个完成后创建新路径。也许它不是那么好的选择,但它对我有用。
我写了一些代码:
function go() {
HashMap<float, float> coords = calcNewCoords();
path = new Path(2).to(currentPosX, currentPosY).to(coords.get("toX"),coords.get("yoY"));
time = calcTime();
petSprite.registerEntityModifier(new PathModifier(time,
path, null, new IPathModifierListener() {
@Override
public void onPathWaypointFinished(PathModifier pPathModifier,
IEntity pEntity, int pWaypointIndex) {
// TODO Auto-generated method stub
rest();
}
}));
}
function rest() {
....
go();
}
类似的东西......这不是我真正的代码..但我尝试过onPathWaypointFinished()并且它的工作原理! 在我的游戏中有一个角色,它随机地走向随机位置,而不是休息并转到另一个角落......