Greetings, can you give me a code that when you touch an object, it slows down the enemy for a while, thanks
public class SlowDownWorld extends World { private int slowDownTimer = 0; public void slowDownEnemies() { slowDownTimer = 300; } public boolean isSlowedDown() { return slowDownTimer > 0; } @Override public void act() { if (slowDownTimer > 0) { --slowDownTimer; } } }
public class Enemy extends Actor { @Override public void move(final int distance) { // positive value for distance is expected final SlowDownWorld world = (SlowDownWorld)getWorld(); final int actualDistance = world != null && world.isSlowedDown() ? distance - 1 /* else */ : distance; super.move(actualDistance); } }
public class You extends Actor { @Override public void act() { final Actor freezer = getOneIntersectingObject(SlowDownObject.class); final SlowDownWorld world = (SlowDownWorld)getWorld(); if (freezer != null && world != null) { world.removeObject(freezer); world.slowDownEnemies(); } } }