在防御游戏塔的path修改器

我在我的防守游戏塔中为每个敌人的path实施了PathModifier。 所以我把固定的时间应用到了那个敌人的path修改器上。 像下面的代码描述。

new PathModifier(speed, path); 

这里速度定义完成path的时间。 但是在防守游戏中,我的问题是有一个减缓敌人行动的塔。 在那特殊的情况下,我被卡住了。 请有人提供一些指导在这种情况下做什么。

编辑:

  Path path = new Path(wayPointList.size()); for (int j = 0; j < wayPointList.size(); j++) { Point point = grid.getCellPoint(wayPointList.get(j).getRow(), wayPointList.get(j).getCol()); path.to(point.x, point.y); } 

如果你的单位有一个固定的时间完成他们的path,那么他们有一个速度。 计算速度并使用它来代替固定path时间。 速度是pathLength/timeToCompletePath 。 当一个塔放慢他们,降低单位速度。

如果我理解这个正确的话,你应该有一些可以从敌人外面使用的timeModifier。 所以当塔与弹丸碰撞时,塔可以将修正器放下。

如果这不是一个select,你可以尝试解释你如何find你的道路,以及如何完成。 以及如何执行。

我从其他论坛find下面的解决scheme,所以我粘贴它来帮助其他成员。

那么我能想到的最简单的解决scheme是:1)创建新的类MyPathModifier(或某事…)2)使其扩展PathModifier。 3)创建一个类级别的浮点variables。 我们称之为mSpeedModifier。 默认值是1.f 4)为这个variables创建公共set / get方法5)覆盖onUpdate:

  @Override public float onUpdate(final float pSecondsElapsed, final IEntity pEntity) { return super.onUpdate(pSecondsElapsed * mSpeedModifier, pEntity); } 

6)当需要调用这个variables的setter。 半速通过0.5f。 两种方式,所以2.f会使敌人移动2倍。 7)享受。